Visual Basic para Aplicaciones - Modificar un registro solo si un correo se envio access VBA

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 8 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Modificar un registro solo si un correo se envio access VBA

Publicado por Francisco Lorenzo (3 intervenciones) el 11/04/2018 04:18:11
Tengo una aplicación access que envía un correo automáticamente confirmando la recepcion de un archivo. AL hacer esto también cambia el campo (estatus) de una tabla (correos por enviar). es decir al ejecutar el comando Docmd.sendobject.... el estatus cambia de "correo por enviar" a "correo enviado"

Esto sucede independientemente si el correo es enviado (presiono send en outlook) y si No envio cancelo y en su lugar cierro outlook antes de enviar.

Como puedo lograr que el campo permanezca en "correo por enviar" si cierro outlook antes de enviar el correo. es decir el correo no es enviado

Gracias

aca mi código

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim mailto as string
Dim emailmsg as string
Dim emailsub as string
 
mailto = "correo@dominio.com"
emailsub = "asunto"
emailmsg = "cuerpo del correo de correo"
 
Docmd.SendObject acSendReport, "formulario", acFormatPdf, mailto, , ,mailsub, emailmsg, True
 
tabla.edit
tabla!estatus = "Correo enviado"
tabla.update
 
On Error Resume Next
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
Val: 115
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Modificar un registro solo si un correo se envio access VBA

Publicado por Norberto (34 intervenciones) el 17/04/2018 14:00:34
Hola.

Aunque habría solución (capturas el evento ItemSend, compruebas si el elemento enviado es el que está pendiente el la tabla de Access...) creo que es más sencillo si el envío lo haces desde Access así:

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 cmdEnviar_Click()
'Es necesario añadir la refeerncia Microsoft Outlook xx.x Object Library (Herramientas/Referencias)
    Dim OutApp As Outlook.Application
    Dim OutMail As Outlook.MailItem
 
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(olMailItem)
 
    With OutMail
        'Esto es obvio :)
        .To = Me.txtCorreosElectrónicos
        .CC = ""
        .BCC = ""
        .Subject = Me.txtAsunto
        .BodyFormat = olFormatHTML
        .HTMLBody = Me.txtMensaje
        .Attachments.Add "nombre del fichero.pdf"
        .Send
    End With
 
    Set OutMail = Nothing
    Set OutApp = Nothing
 
End Sub

En ese caso, lo que tienes que hacer es generar el pdf y adjuntarlo (línea 17).

Con este procedimiento te aseguras el envío ya que no queda a merced de Outlook.

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
1
Comentar