Supongamos que tengo el formulario Productos, donde señalo algunos registros
En el evento Al hacer clic del botón Imprimir le pongo
Private Sub Comando10_Click()
Dim i As Byte, b As Byte
DoCmd.GoToRecord , , acFirst
For i = 1 To Me.Recordset.RecordCount
If Seleccionar = True Then
For b = 1 To 2
DoCmd.OpenReport "productos", acNormal, , "producto='" & Me.Producto & "'"
DoCmd.Close acReport, "productos"
Next
End If
DoCmd.GoToRecord , , acNext
Next
End Sub
Me explico. Cuando lo pulso va al primer registro. Comprueba si está marcado o no. Si está marcado, te imprime el informe Productos, lo cierra, te lo imprime otra vez, lo cierra y se va al siguiente registro, hace la misma comprobación, y así hasta el último registro.
Como sólo son dos impresiones de cada también podrías poner la instrucción como
Private Sub Comando10_Click()
Dim i As Byte
DoCmd.GoToRecord , , acFirst
For i = 1 To Me.Recordset.RecordCount
If Seleccionar = True Then
DoCmd.OpenReport "productos", acNormal, , "producto='" & Me.Producto & "'"
DoCmd.Close acReport, "productos"
DoCmd.OpenReport "productos", acNormal, , "producto='" & Me.Producto & "'"
DoCmd.Close acReport, "productos"
End If
DoCmd.GoToRecord , , acNext
Next
End Sub
Pero para no repetir tanto, por si tuvieras que hacer X de un mismo registro es preferible usar la primera.