Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Recordset not displaying in Active Report

Posted on 2002-03-08
6
Medium Priority
?
541 Views
Last Modified: 2007-12-19
When stepping through the code below 1 record is returned which is correct, however the record will not display the report is shown. The txtFullname properties: Datafield is set to FullName and DataSource is set to DataControl1. I have tried putting the code from Sub OpenDataControl in the Private Sub ActiveReport_Initialize()but still does not show record. Any ideas?

Option Explicit
Dim rsLetter As New ADODB.Recordset
Dim dWellVisitDate As Date
Dim dImmuDate As Date
Dim RecCount As Integer
Dim iMonthNumber As Integer
Dim sWellVisitType As String

Private Sub ActiveReport_Deactivate()
   
    Set rsLetter = Nothing
   
End Sub

Private Sub ActiveReport_Initialize()
Dim iTotal, iCount As Integer
       
    Select Case sLetterType
        Case "wv"
            lblReportHeader.Caption = "WellVisit Reminder Report (" & sRLStartDate & _
            " - " & sRLEndDate & ")"
            lblWVImmu.Caption = "WellVisit"
           
            MsgBox "This report may take several minutes to process.", vbOKOnly + vbInformation, "Process"
           
            Call WellVisit

        Case "immu"
            lblReportHeader.Caption = "Immunization Reminder Report (" & sRLStartDate & _
            " - " & sRLEndDate & ")"
            lblWVImmu.Caption = "Immunization"
           
            MsgBox "This report may take several minutes to process.", vbOKOnly + vbInformation, "Process"
           
'            Call Immu       'This will contain sql's to determine records to print


    End Select
   
End Sub

Public Sub WellVisit()
Dim i As Integer
Dim sCriteria As String
   
    sCriteria = "2mo"
   
    For i = 1 To 2  '30
        sql = ""
        sql = "SELECT tblPatientInfo.ID, tblPatientInfo.RecNum, tblPatientInfo.ActiveStatus, "
        sql = sql + "tblPatientInfo.FullName , tblPatientInfo.DOB, tblPatientInfo.Address1, "
        sql = sql + "tblPatientInfo.Address2 , tblPatientInfo.City, tblPatientInfo.State, "
        sql = sql + "tblPatientInfo.Zip , tblPatientInfo.HPhone, tblLookUpWellVisit.[2mo] "
        sql = sql + "FROM tblPatientInfo "
        sql = sql + "INNER JOIN tblLookUpWellVisit "
        sql = sql + "ON tblPatientInfo.ID = tblLookUpWellVisit.PatID "
        sql = sql + "WHERE tblPatientInfo.ActiveStatus = True "
       
        Select Case sCriteria
            Case "2mo"
                sql = sql + "AND tblLookUpWellVisit.[2mo] = " & """" & "Next" & """" & ";"
                rsLetter.Open sql, DB, adOpenStatic, adLockOptimistic
               
                Call OpenDataControl
               
                iMonthNumber = 2
                sWellVisitType = "2 Month"
               
                sCriteria = "4mo"
               
            Case "4mo"
                sql = sql + "AND tblLookUpWellVisit.[4mo] = " & """" & "Next" & """" & ";"
                rsLetter.Open sql, DB, adOpenStatic, adLockOptimistic
               
                Call OpenDataControl
               
                iMonthNumber = 4
                sWellVisitType = "4 Month"
               
                sCriteria = "6mo"
                           
        End Select
       
        RecCount = rsLetter.RecordCount
       
        Call ProcessRecords
       
        rsLetter.Close
       
    Next i
       

End Sub

Public Sub ProcessRecords()
Dim iCount As Integer
Dim dNewDate As Date
   
    If rsLetter.RecordCount > 0 Then
        rsLetter.MoveFirst
   
        For iCount = 1 To RecCount
            dNewDate = DateAdd("m", iMonthNumber, rsLetter!DOB)
           
            txtFullName.Text = rsLetter!FullName
       
            rsLetter.MoveNext
       
        Next
   
    Else
        Exit Sub
   
    End If
   
End Sub

Public Sub OpenDataControl()

    Set DataControl1.Connection = DB

    DataControl1.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & gsCheckRegistrydbPath & ";"
    DataControl1.Source = sql
    DataControl1.Recordset = rsLetter

End Sub

Thanks
robhas
0
Comment
Question by:robhas
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
6 Comments
 
LVL 75

Accepted Solution

by:
Anthony Perkins earned 450 total points
ID: 6850826
The line:
DataControl1.Recordset = rsLetter
Should be
Set DataControl1.Recordset = rsLetter

Also, add immediately after:
DataControl1.Refresh

Anthony
0
 

Author Comment

by:robhas
ID: 6851302
I added set and refresh and I receive error:Error 5000 : Error in processing report.
 [ Extended Info:Could not find installable ISAM.] This has to do with the refresh because when I take out refresh I do not receive the error. Also still the record does not display in the report but when stepping through it still passes the value to txtFullname.

Thanks
robhas
0
 
LVL 75

Expert Comment

by:Anthony Perkins
ID: 6851355
The problem has to do with the Connection string.  Make sure it is a valid connection string.  Any time you re-assign the connection string and/or recordset properties you are required to do a Refresh.

Anthony
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 

Author Comment

by:robhas
ID: 6851390
I will look closer at that this evening and over the weekend.
Thanks
robhas
0
 

Author Comment

by:robhas
ID: 6851415
One thing I tried was to put all code under Private Sub ActiveReport_Initialize() and it displayed the record. since I know it is one record returned for this one I did not put the for loops in, just the sql statement datacontrol statements and txtFullName.Text = rsLetter!FullName. Going to leave question open for a while and see what other ideas are there because I need to use these for loops and I do not like to put all of this code in one procedure.

thanks
robhas
0
 

Author Comment

by:robhas
ID: 6880922
I finally got Datacontrol1.refresh to work. It took awhile there were some other problems I found.
Thanks
robhas
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
Suggested Courses

670 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question