Access - Envío distintos informes a distintas direcciones de correo

   
Vista:

Envío distintos informes a distintas direcciones de correo

Publicado por Cristina (5 intervenciones) el 06/02/2015 14:49:19
Buenos días,
Gracias a algún post de esta web he conseguido confecionar un código para envíar distintos informes de access a su correspondiente dirección de correo electrónico.
Tengo una tabla con los siguiente campos:
ID_NUCLEO - TERMINO MUNICIPAL - DIRECCIÓN DE MAIL
En esta tabla tengo 17 núcleos con sus 17 direcciónes de mail y cada núcleo tengo que envíar un informe con su consumo de agua realizado durante el mes.
No sé como indicárselo. ¿Alguién puede ayudarme?¿Tengo que incluir una línea para que pase de registro?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub cmdMailReport_Click()
On Error GoTo sol_err
    Dim vDest As String, vCC As String, vCCO As String
    Dim miAsunto As String, miMsg As String
        'Cogemos el valor del destinatario
    vDest = Nz(Me.MailCont.Value, "")
        'Cogemos el valor de la copia
    vCC = Nz(Me.cboCC.Value, "")
        'Cogemos el valor de la copia oculta
    vCCO = Nz(Me.cboCCO.Value, "")
        'Cogemos el valor del asunto
    miAsunto = Nz(Me.txtAsunto.Value, "")
        'Cogemos el valor del cuerpo del mensaje
    miMsg = Nz(Me.txtMsg.Value, "")
        'Si no existe mail para el destinatario lanza un mensaje de aviso y sale del proceso
    If vDest = "" Then
        MsgBox "No existe mail donde enviar el informe", vbCritical, "AVISO"
        Exit Sub
    End If
        'Realizamos el envío
    DoCmd.SendObject acSendReport, "C_ARAHUETES", , vDest, vCC, vCCO, miAsunto, miMsg, 0
sol_err:
    Exit Sub
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto

Envío distintos informes a distintas direcciones de correo

Publicado por Norberto (432 intervenciones) el 09/02/2015 16:27:31
Hola.

Entiendo que tienes un formulario con todos los registros de una tabla y que cuando pulses el botón, quieres que se envíe el informe (distinto) a cada uno de los destinatarios. También entiendo que el informe tomará datos del registro activo para determinar la información a enviar, de lo contrario todos recibirían un mismo informe con la información de todos. Si todas mis suposiciones son ciertas el procedimiento debería recorrer todo el formulario y hacer un envío por cada registro, de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub cmdMailReport_Click()
    On Error GoTo sol_err
    Dim vDest As String, vCC As String, vCCO As String
    Dim miAsunto As String, miMsg As String
    Dim PermitirAñadir As Boolean
 
    'Activamos AllowAditions para poder saber cuando hemos terminado de recorrerlo
    PermitirAñadir = Me.AllowAditions
    Me.AllowAditions = True
 
    DoCmd.GoToRecord acDataForm, Me.Name, acFirst
    Do While Not Me.NewRecord
        vDest = Nz(Me.MailCont.Value, "")
        vCC = Nz(Me.cboCC.Value, "")
        vCCO = Nz(Me.cboCCO.Value, "")
        miAsunto = Nz(Me.txtAsunto.Value, "")
        miMsg = Nz(Me.txtMsg.Value, "")
        If vDest <> "" Then 'Si hay destinatario se manda y si no lo salta
            DoCmd.SendObject acSendReport, "C_ARAHUETES", , vDest, vCC, vCCO, miAsunto, miMsg, 0
        End If
        DoCmd.GoToRecord acDataForm, Me.Name, acNext
    Loop
 
sol_err:
    Exit Sub
 
    Me.AllowAdditions = PermitirAñadir
 
End Sub

El problema es que Outlook detecta que otra aplicación intenta enviar un correo y tendrás que confirmar uno a uno todos los envíos. Existe la posibilidad de hacerlo usando CDO y saltándose Outlook. Si quieres más información al respecto, me lo dices.

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar