Procedimiento para enviar mails personalizados
Y gracias de antemano por la ayuda que me puedas dar.
Te comento el problema, Necesito enviar un informe personalizado por colaborador a los colaboradores que tengan visitas asociadas a una fecha. La idea es enviar un informe que filtro por colaborador.
Te pongo el código:
Dim Var_Colaborador, Var_Mail As String
SQL = "SELECT Colaborador FROM GSN_Cursos_Comunicados WHERE Obligatoria = True AND Fecha_Comunicacion = #" & Format(Me.Texto50, "dd/mm/yyyy") & "# GROUP BY Colaborador"
Set RS = CurrentDb.OpenRecordset(SQL)
RS.MoveFirst
Do While Not RS.EOF
Var_Colaborador = RS!Colaborador
Var_Mail = DLookup("[Mail]", "GSN_Colaboradores", "Colaborador = " & Var_Colaborador)
DoCmd.OpenReport "GSN_Aviso_Visita_Obligatoria_x_Colaborador", acViewPreview, , "Colaborador = " & Chr(34) & Var_Colaborador & Chr(34)
If MsgBox("Desea enviar por mail el informe al colaborador?", vbYesNo) = vbYes Then
DoCmd.SendObject acSendReport, "GSN_Aviso_Visita_Obligatoria_x_Colaborador", "HTML", Var_Mail, , , "GSN:Informe de Visita Obligatoria", "Informe a " & Var_Colaborador & " que segun lo establecido por la Gerencia del Sector Naval los cursos especificados en el documento adjunto estan clasificados como obligatorios", False, ""
SQL2 = "SELECT F_Envio FROM GSN_Cursos_Comunicados WHERE Obligatoria = True AND Colaborador=Var_colaborador AND Fecha_Comunicacion = #" & Format(Me.Texto50, "dd/mm/yyyy") & "#"
Set rs2 = CurrentDb.OpenRecordset(SQL2)
rs2.edit
rs2!f_envio = Date
End If
If MsgBox("Desea continuar?", vbYesNo) Then
DoCmd.Close
RS.MoveNext
End If
Loop
La idea es:
1º saco los colaboradores que tienen visitas asignadas a una fecha (que saco de un control en un formulario) y los agrupo para no tenerlos repetidos
2º con el do while recorro el recordset para enviar 1 informe a cada 1 de los colaboradores
3º el dlookup lo uso para sacar la dirección mail de cada colaborador
4º envío el informe al colaborador (el informe esta hecho sobre una consulta donde no se incluye como criterio el colaborador, con lo que se lo paso ahora para que cada colaborador vea solo sus visitas)
5º con el SLQ2 y el RS2 intento escribir la fecha de envío en la tabla.
Bien, pues ahora mismo, no salta de un informe al siguiente, solo abre el 1º de ellos, con el 1º colaborador, lo hace bien, pero debería seguir luego al 2º
Te comento el problema, Necesito enviar un informe personalizado por colaborador a los colaboradores que tengan visitas asociadas a una fecha. La idea es enviar un informe que filtro por colaborador.
Te pongo el código:
Dim Var_Colaborador, Var_Mail As String
SQL = "SELECT Colaborador FROM GSN_Cursos_Comunicados WHERE Obligatoria = True AND Fecha_Comunicacion = #" & Format(Me.Texto50, "dd/mm/yyyy") & "# GROUP BY Colaborador"
Set RS = CurrentDb.OpenRecordset(SQL)
RS.MoveFirst
Do While Not RS.EOF
Var_Colaborador = RS!Colaborador
Var_Mail = DLookup("[Mail]", "GSN_Colaboradores", "Colaborador = " & Var_Colaborador)
DoCmd.OpenReport "GSN_Aviso_Visita_Obligatoria_x_Colaborador", acViewPreview, , "Colaborador = " & Chr(34) & Var_Colaborador & Chr(34)
If MsgBox("Desea enviar por mail el informe al colaborador?", vbYesNo) = vbYes Then
DoCmd.SendObject acSendReport, "GSN_Aviso_Visita_Obligatoria_x_Colaborador", "HTML", Var_Mail, , , "GSN:Informe de Visita Obligatoria", "Informe a " & Var_Colaborador & " que segun lo establecido por la Gerencia del Sector Naval los cursos especificados en el documento adjunto estan clasificados como obligatorios", False, ""
SQL2 = "SELECT F_Envio FROM GSN_Cursos_Comunicados WHERE Obligatoria = True AND Colaborador=Var_colaborador AND Fecha_Comunicacion = #" & Format(Me.Texto50, "dd/mm/yyyy") & "#"
Set rs2 = CurrentDb.OpenRecordset(SQL2)
rs2.edit
rs2!f_envio = Date
End If
If MsgBox("Desea continuar?", vbYesNo) Then
DoCmd.Close
RS.MoveNext
End If
Loop
La idea es:
1º saco los colaboradores que tienen visitas asignadas a una fecha (que saco de un control en un formulario) y los agrupo para no tenerlos repetidos
2º con el do while recorro el recordset para enviar 1 informe a cada 1 de los colaboradores
3º el dlookup lo uso para sacar la dirección mail de cada colaborador
4º envío el informe al colaborador (el informe esta hecho sobre una consulta donde no se incluye como criterio el colaborador, con lo que se lo paso ahora para que cada colaborador vea solo sus visitas)
5º con el SLQ2 y el RS2 intento escribir la fecha de envío en la tabla.
Bien, pues ahora mismo, no salta de un informe al siguiente, solo abre el 1º de ellos, con el 1º colaborador, lo hace bien, pero debería seguir luego al 2º
1 respuesta
Respuesta de xavi -ae soft-
1