Link to home
Start Free TrialLog in
Avatar of robhas
robhas

asked on

Recordset not displaying in Active Report

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
ASKER CERTIFIED SOLUTION
Avatar of Anthony Perkins
Anthony Perkins
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of robhas
robhas

ASKER

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
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
Avatar of robhas

ASKER

I will look closer at that this evening and over the weekend.
Thanks
robhas
Avatar of robhas

ASKER

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
Avatar of robhas

ASKER

I finally got Datacontrol1.refresh to work. It took awhile there were some other problems I found.
Thanks
robhas