This is a report selector form. All of the buttons on the form print different variations on the same report. The report has a text box with a control source =GetReportTitle() that displays a description of the particular variation.
This also illustrates the use of string, date, and boolean criteria in a WHERE clause.
This is the standard module.
Global ReportTitle As String
Function GetReportTitle() As String
GetReportTitle = ReportTitle
End Function
This is the class module for my form
Option Compare Database
Option Explicit
Private Sub PrintECS(withheader As String, withcrit As String)
ReportTitle = withheader
On Error Resume Next
DoCmd.OpenReport "rptExecClaimStat", acViewPreview, , withcrit
End Sub
Private Sub Command26_Click()
DoCmd.Close
End Sub
Private Sub Option1_Click()
Call PrintECS("Full Report", "")
End Sub
Private Sub Option2_Click()
Dim crit As String, resp
resp = InputBox("Enter the Division:")
If Len(Nz(resp, "")) > 0 Then
crit = "DivAbbrv = '" & resp & "'"
Call PrintECS("Single Division", crit)
End If
End Sub
Private Sub Option3_Click()
Dim crit As String, resp1, resp2
resp1 = InputBox("Starting date:")
If IsDate(resp1) Then
resp2 = InputBox("Ending date:")
If IsDate(resp2) Then
crit = "dtChanged Between #" & resp1 & "# And #" & resp2 & "#"
Call PrintECS("Changed between " & resp1 & " and " & resp2, crit)
End If
End If
End Sub
Private Sub Option4_Click()
Dim crit As String
crit = "HighPriority = True"
Call PrintECS("High Priority, all dates", crit)
End Sub
Private Sub Option5_Click()
Dim crit As String, resp1, resp2
resp1 = InputBox("Starting date:")
If IsDate(resp1) Then
resp2 = InputBox("Ending date:")
If IsDate(resp2) Then
crit = "(dtChanged Between #" & resp1 & "# And #" & resp2 & "#) And (HighPriority=True)"
Call PrintECS("High Priority Cases, changed between " & resp1 & " and " & resp2, crit)
End If
End If
End Sub
Private Sub Option6_Click()
Dim crit As String, resp1, resp2
resp1 = InputBox("Starting date:")
If IsDate(resp1) Then
resp2 = InputBox("Ending date:")
If IsDate(resp2) Then
crit = "dtCreated Between #" & resp1 & "# And #" & resp2 & "#"
Call PrintECS("New Cases added between " & resp1 & " and " & resp2, crit)
End If
End If
End Sub
Private Sub Option7_Click()
Dim crit As String, resp1, resp2
resp1 = InputBox("Starting date:")
If IsDate(resp1) Then
resp2 = InputBox("Ending date:")
If IsDate(resp2) Then
crit = "dtClosed Between #" & resp1 & "# And #" & resp2 & "#"
Call PrintECS("Cases Closed between " & resp1 & " and " & resp2,
crit)
End If
End If
End Sub
Private Sub Option8_Click()
Dim crit As String
DoCmd.OpenForm "frmSelectCaseMgr_popup", acNormal, , , acFormEdit, acDialog
If Not IsNull(WhichCaseMgrID) Then
crit = "CaseManagerID = " & WhichCaseMgrID
Call PrintECS("Single Case Manager", crit)
End If
End Sub