Buena tarde muchas gracias a todos por su pronta ayuda, de todos tome parte he intente realizar el código a punta de ensayo y error, el cual ya lo organice y logre imprimir el informe, sin embargo no logro que cada registro que trae la consulta sea un pdf separado.
voy a tratar de explicar mejor el desarrollo que intento hacer:
Tengo un formulario que trae ID programa y el ID de grupo esto los trae de tablas diferentes, en el mismo formulario tengo otros campos que alimentan una tabla diferente y almacena los campos anteriormente mencionados "ID prog... ID Gru...".
Hasta ahi, no hay problema luego cree una consulta que me une todos los datos incluso hace un campo calculado y por ultimo, cree el informe gracias a los aportes de la madrugada logre que los traiga desde la consulta. el problema es que la consulta esta filtrando por ID de la tabla que recoge todos los campos y eso esta bien pero si la consulta me trae 5 registros genera todos los informes en uno solo, lo cual no me sirve por que esta solución es para crear un carne para cada participante y poder enviárselo por correo de una vez, este es el la parte del código que he podido programar:
Private Sub btnasignarhoras_Click()
Dim rutaSalida As String
Dim rutaPdf As String
Dim idhoras As Long
Dim idprograma As Long
Dim idgrupo As Long
Dim rst As DAO.Recordset
rutaSalida = Application.CurrentProject.Path & "\InformesPDF\"
Set rst = CurrentDb.OpenRecordset("ConsuCarne", dbOpenSnapshot)
'If idprograma.Value > 0 And idgrupo.Value > 0 Then
If horaslunes.Value > 0 Or horasmartes.Value > 0 Or horasmiercoles.Value > 0 Or horasjueves.Value > 0 Or horasviernes.Value > 0 Or horassabado.Value > 0 Or horasdomingo.Value > 0 Then
'Comando que actualiza los datos
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
'DoCmd.RunCommand acCmdSaveRecord
If rst.RecordCount = 0 Then GoTo Salida
Echo False
With rst
.MoveFirst
Do Until .EOF
idhoras = .Fields("id").Value
DoCmd.OpenReport "Generar_Carnes", acViewPreview, , "id=" & idhoras
rutaPdf = rutaSalida & "Programa " & Me.idprograma & "_" & Id & ".pdf"
DoCmd.OutputTo acOutputReport, "Generar_Carnes", "*.pdf", rutaPdf, False
DoCmd.Close acReport, "Generar_Carnes"
.MoveNext
Loop
End With
Echo True
MsgBox "Impresión realizada correctamente", vbInformation, "OK"
Salida:
rst.Close
Set rst = Nothing
Else
MsgBox "Debe completar los datos", vbInformation, "ADVERTENCIA"
End If
'End If
DoCmd.Close acForm, "FcreacionCarnes"
End Sub