Solved

Recordset not displaying in Active Report

Posted on 2002-03-08
6
500 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
  • 4
  • 2
6 Comments
 
LVL 75

Accepted Solution

by:
Anthony Perkins earned 150 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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Access 2003, my txt file export is running backwards 4 46
Validating VB6 Function 19 56
VBA error replacing data 6 36
Getting warning: You are about to delete 1 row(s) 9 43
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
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…

914 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now