Recorrer registros de un formulario para enviar correo

He creado este código para enviar correos automáticos al activar registro pero sólo me envía el primer registro. ¿Cómo puedo hacer para recorrer todos los registros y se envíen todos los que cumplan las condiciones?

Private Sub Form_Current()
[Texto9] = [Idrieeva]If Nz(Me.Riesgo, "") = "" Or (Me.Enviado) = True Then Exit Sub

If IsNull(Forms!Evaluaciones!mail_centro) Or Forms!Evaluaciones!mail_centro = "" Then
MsgBox ("HAGA DOBLE CLICK EN DESTINATARIO PARA AÑADIR EMAIL"), vbInformation, "AVISO"
Exit Sub
Else

If (Me.Fecha_prevista <= Date) Then
Me.Enviado = True
Me.Fecha_envio = Date
Me.Hora_envio = Format(Now, "hh.mm.ss")

DoCmd.OpenReport "Carta", acPreview, , "[idrieeva]=" & Me![Idrieeva]
DoCmd.SendObject acSendReport, "Carta", "PDF Format(*.pdf)", "'" & Forms!Evaluaciones![mail_centro] & "'", , , "Envio de Certificado", "Estimado amigo: Te mando recuerdos y un certificado", True
End If
End If
End Sub

Respuesta
1

Es lógico que sólo te envíe el primer registro. Para que te los fuera enviando, cuando la instrucción la pones en el evento Al activar registro, tendrías que ir desplazándote por los registros.

Podrías, al no saber la construcción del formulario, poner un botón de comando y en sus propiedades-eventos-al hacer clic

Docmd. Gotorecord,, acfirst

dim i as integer

for i=1 to me.recordset.recordcount

La instrucción que tienes arriba

Docmd. Gotorecord,, acnext

next

Me explico. Al pulsar el botón se va al primer registro, ejecuta lo que tenga que ejecutar, después se va al siguiente registro, ejecuta la instrucción, se va al siguiente registro, ... y así hasta el último.

Pero ya te digo que no sé como es el formulario tuyo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas