An example of command button event from one of my apps
Code:
Private Sub comRepGroup1_Click()
On Error GoTo Err_comRepGroup1_Click
Dim stDocName As String
Select Case Me.cbbRepGroup1Rep ' a report is selected based on value of combo in form
Case "Date-Contract-OutlayCode"
stDocName = "repLeasePaymentsOutlayPer"
Case "Date-OutlayCode-Contract"
stDocName = "repLeasePaymentsContractPer"
Case "LeasedDevices"
stDocName = "repLeasedDevices"
End Select
Select Case Me.cbbRepGroup1Dest ' Report output type is selected based on value of combo in form
Case "Preview"
DoCmd.OpenReport stDocName, acPreview
Case "Print"
DoCmd.OpenReport stDocName, acNormal
Case "Print to file"
DoCmd.OutputTo acReport, stDocName
Case "*.xls"
Select Case stDocName
Case "repLeasePaymentsOutlayPer"
DoCmd.TransferSpreadsheet acExport, 8, "qLeasePaymPer", "LeasePayments.xls", True, ""
Case "repLeasePaymentsContractPer"
DoCmd.TransferSpreadsheet acExport, 8, "qLeasePaymPer", "LeasePayments.xls", True, ""
Case "repLeasedDevices"
DoCmd.TransferSpreadsheet acExport, 8, "qLeasedDevices", "LeasedDevices.xls", True, ""
End Select
End Select
Exit_comRepGroup1_Click:
Exit Sub
Err_comRepGroup1_Click:
MsgBox Err.Description
Resume Exit_comRepGroup1_Click
End Sub
Then one where querystring is composed accordingly filter conditions determined through form controls
Code:
Private Sub comRepGroup2_Click()
On Error GoTo Err_comRepGroup2_Click
Dim stDocName As String
Select Case Me.cbbRepGroup2Rep
Case "OutlayCode-Department-Group-User"
stDocName = "repUserDevices"
End Select
Select Case Me.cbbFilterField
...
Case "OutlayCode"
Me.Application.CurrentDb.QueryDefs("qUserDevices").SQL = _
"SELECT [qUserDevices1].[QueryDate], [qUserDevices1].[DeviceID], ... FROM qUserDevices1 WHERE ((([qUserDevices1].[OutlayCode])= " & Chr$(39) & Me.cbbFilterValue & Chr$(39) & "));"
...
End Select
Select Case Me.cbbRepGroup2Dest
Case "Preview"
DoCmd.OpenReport stDocName, acPreview
Case "Print"
DoCmd.OpenReport stDocName, acNormal
Case "Print to file"
DoCmd.OutputTo acReport, stDocName
Case "*.xls"
Select Case stDocName
Case "repUserDevices"
DoCmd.TransferSpreadsheet acExport, 8, "qUserDevices", "UserDevices.xls", True, ""
End Select
End Select
Exit_comRepGroup2_Click:
Exit Sub
Err_comRepGroup2_Click:
MsgBox Err.Description
Resume Exit_comRepGroup2_Click
End Sub
And one (another app), where filter condition is set using WHERE clause of report (info about current record of active form is reported)
Code:
Private Sub cmdViewChemCard_Click()
On Error GoTo Err_cmdViewChemCard_Click
Dim stDocName As String
Dim sWhereCondition As String
sWhereCondition = "ChemID = " & Me.ChemID
stDocName = "repChemCard"
DoCmd.OpenReport stDocName, acPreview, , sWhereCondition
Exit_cmdViewChemCard_Click:
Exit Sub
Err_cmdViewChemCard_Click:
MsgBox Err.Description
Resume Exit_cmdViewChemCard_Click
End Sub