You use DAO, so.. we can dynamically change query:
Function ChangeQuery(sQryName As String, sSQL As String) As Boolean
Dim db As Database, qry As QueryDef
ChangeQuery = True
On Error Resume Next
Set qry = CurrentDb.QueryDefs(sQryName)
If Not qry is Nothing Then CurrentDb.Querydefs.Delete sQryName
CurrentDb.QueryDefs.Refresh
On Error GoTo Err_ChangeQuery
Set qry = CurrentDb.CreateQueryDef(sQryName, sSQL)
CurrentDb.QueryDefs.Refresh
Exit_ChangeQuery:
On Error Resume Next
qry.Close
Set qry = Nothing
db.close
Set db = Nothing
Exit Function
Err_ChangeQuery:
Err.Clear
ChangeQuery = False
Resume Exit_ChangeQuery
End Function
Usage:
Private Sub Command130_Click()
Dim rst As DAO.Recordset, bRetVal As Boolean, sSQL As String
Set rst = CurrentDb.OpenRecordset("SELECT DISTINCT [SUP_Sup_name] FROM [query03 Retail Lender] ORDER BY [SUP_Sup_name];", dbOpenSnapshot)
Do While Not rst.EOF
sSQL = "SELECT * FROM SupEmployees WHERE [SUP_Sup_Name] = " & rst![SUP_Sup_Name]
bRetVal = ChangeQuery("Indv Retail Lender", sSQL)
If bRetVal Then DoCmd.OutputTo acOutputReport, "Indv Retail Lender", acFormatPDF, "g:\data folder\data\incentive\" & "\" & rst![SUP_Sup_Name] & ".pdf"
DoEvents
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
End Sub
Remove
Private Sub Report_Close()
and
Private Sub Report_Open(Cancel As Integer)
from Report.