José Antonio: Suponiendo que estamos en un Formulario, y con un Botón que se llame BtnConsultas.
En la cabecera del Modulo de Código del Formulario, Después de
Option Compare Database
Option Explicit
Declaras "dos" Variables >>,
Dim QryPrincipal As String, FiltroVendedor As String
Luego "dos" Procedimientos.
Private Sub BtnConsultas_Click()
'Llamamos a la Consulta Principal
Call CuerpoConsulta
Dim Rst As DAO.Recordset
Set Rst = Me.RecordsetClone
Rst.MoveLast
RstMove.First
NVendedores = Rst.RecordCount
MsgBox "Vas a ejecutar la Consulta " & NVendedores & " Veces"
Dim QryVende As String
'Comprobación rutinaria de que el Recordset tiene datos
If Not Rst.EOF And Not Rst.Bof
Do While Not Rst.EOF
FiltroVendedor = "IdVendedor = " & Rst!IdVendedor
QryVende = QryPincipal & FiltroVendedor
DoCmd.SetWarnings False
CurrentDb.Execute QryVende, dbFailOnError
DoCmd.SetWarnings True
Rst.MoveNext
Loop
End If
Rst.close
Set Rst = Nothing
End Sub
Ahora el otro Procedimiento que contendrá el Cuerpo "General de La Consulta.
Sub CuerpoConsulta()
QryPrincipal = "SELECT o UPDATE o.......
QryPrincipal = QryPrincipal & "......................" 'por si es larga
QryPrincipal = QryPrincipal & " WHERE "
'Así la dejamos preparada para que admita el Filtro
End Sub
Espero no haberme dejado algo, porque he ido escribiendo sobre la marcha, pero la idea básica es la que te quería sugerir. Mis saludos >> Jacinto