You have a few problems and your code is getting closer to something that will work. Ultimately, you may want to refactor your code to get better performance. The error is likely because qry_BM_InvRepConsolNoZeroC_Final does not have a Salesperson column and or there is a parameter hard coded in the object. Remove any Parameters and make your query object a simple SELECT query , being sure to include the Salesperson column. Then you will need some code like the following. Test without the loop so you do not error inside the loop and freeze your PC.
Code:
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strRptFilter As String
Set db = CurrentDb
'Set rst = db.OpenRecordset("SELECT * FROM qry_BM_InvRepConsolNoZeroC_Final WHERE [Salesperson] = " & Me.cmbSalesperson)
'If Salesperson is text you will need to use the following syntax. Make sure the bound column in your combo is the correct one.
Set rst = db.OpenRecordset("SELECT * FROM qry_BM_InvRepConsolNoZeroC_Final WHERE [Salesperson] = '" & Me.cmbSalesperson & "'")
'While Not rst.EOF
'Since ClientName is text you need to use the following syntax.
strRptFilter = "[ClientName] = '" & rst.Fields("ClientName") & "'"
'After you get the expected parameter error out of the way, you will
'need to include code to apply the where criteria to your report's Filter property
DoCmd.OpenReport "rpt_BM_InvRepConsolNoZeros", , , strRptFilter
DoCmd.SelectObject acReport, "rpt_BM_InvRepConsolNoZeros"
'Now we can output the object
DoCmd.OutputTo acOutputReport, "rpt_BM_InvRepConsolNoZeros", acFormatPDF, "R:\Sandy's Playground" & "\" & rst.Fields("ClientName") & ".pdf"
'We need to close the report
DoCmd.Close acReport, "rpt_BM_InvRepConsolNoZeros"
'rst.MoveNext
'Wend
rst.Close
Set rst = Nothing
Set db = Nothing