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()b ut 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.ActiveStatu s, "
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.ActiveStatu s = 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.ConnectionStr ing = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & gsCheckRegistrydbPath & ";"
DataControl1.Source = sql
DataControl1.Recordset = rsLetter
End Sub
Thanks
robhas
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.ActiveStatu
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.ActiveStatu
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.ConnectionStr
DataControl1.Source = sql
DataControl1.Recordset = rsLetter
End Sub
Thanks
robhas
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
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
Anthony
ASKER
I will look closer at that this evening and over the weekend.
Thanks
robhas
Thanks
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
thanks
robhas
ASKER
I finally got Datacontrol1.refresh to work. It took awhile there were some other problems I found.
Thanks
robhas
Thanks
robhas
ASKER
[ 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