Envió de correo con outlook desde access (poblar con datos de tablas)

He estado viendo un procedimiento para poder enviar un correo con outlook desde access, pero en mi caso debo poblar tanto los destinatarios, como el asusto y el cuerpo del mensaje con datos de la base de datos y formularios y no he encontrado la forma de hacerlo ya que son varios datos que saco tanto de formulario que en el momento están abiertos y datos de la base de datos.

Si alguien me puede ayudar se lo agradezco.

2 Respuestas

Respuesta
2

Lo puedes hacer de muchas formas, todo depende de lo que quieras enviar, donde están los datos, etc. Por ejemplo, supongamos que tienes un formulario en vista formulario único llamado Clientes donde tienes, entre otros un cuadro de texto llamado email, otro llamado Asunto, otro llamado Mensaje, y lo que quieres es mandar el informe Clientes con los datos de ese cliente. Puedes poner un botón de comando y en sus propiedades-eventos-al hacer clic, entre Private Sub y End Sub poner

DoCmd.OpenReport "clientes", acPreview, , "idloquesea=forms!cliente!idloquesea"
DoCmd.SendObject acSendReport, "clientes", "PDFFormat(*.pdf)", "'" & [email] & "'", , , Me.[Asunto], Me.[Mensaje], True

Donde idloquesea es lo que relaciona ese registro en particular con el mismo registro del informe.

Lo de true es por si quieres verlo antes de enviarlo. Sí te fías pon false

¿Qué quieres tener el asunto programado?, donde pone me. Asunto pon "Te envío un mensaje demoledorrrr"

¡Que quieres que el mensaje sea igual, en vez de me.mensaje pones "Estimado amigo..."

¿Qué quieres mandar todos los registros?

Cambia el código de arriba por

dim i as integer

for I=1 to form.recordset.recordcount

DoCmd.OpenReport "cliente", acPreview, , "idloquesea=forms!cliente!idloquesea"
DoCmd.SendObject acSendReport, "cliente", "PDFFormat(*.pdf)", "'" & [email] & "'", , , Me.[Asunto], Me.[Mensaje], True

docmd.gotorecord,,acnext

next

Y asi "va recorriendo todos los registros, enviando mensajes a mansalva.

En fin si pudieras concretar un poco más.

Muchas gracias por responder...

Mi problema es cuando necesito sacar información de tablas y de otro formulario que esta activo. No se como sacar o utilizar las consultas para sacar ciertos datos que son los que poblaran el cuerpo del mensaje.

De igual manera no tengo campos de texto ya que este correo se enviara una vez termine el proceso de llenar formulario para notificar que se creo algo y así mismo lleva información que se saca de tablas y de cosas que se registraron en dichos formularios.

Si escribes algo en un formulario lo estás haciendo en cuadros de texto. O bien lo eliges de un combo, da igual. Lo de me. Asunto es un cuadro de texto del formulario. Me mensaje es otro cuadro de texto.

Lo de sacar datos de tablas lo puedes hacer definiendo variables. Por ejemplo

Dim a as string, b as integer

a = DLookup("nombrecontacto", "clientes", "idloquesea=8")

b=dcount("productos","ventas.....

y luego en el asunto o en el mensaje

"Estimado amigo " & a & ""

Con lo cual te aparecería

Estimado amigo Miguel Angel...

La instrucción sería

DoCmd.SendObject acSendForm, "compra", "RichTextFormat(*.rtf)", "'" & [Email] & "'", , , "Te envío un documento", "Estimado amigo " & a & ". Te mando " & b & " jamones", True

Como te decía todo depende de como lo quieras mandar

Otra forma, supongamos que tienes variables y valores en los cuadro de texto y supongamos que en el formulario, además de los cuadros de texto email, asunto tienes también los cuadros de texto Producto y Precio y quieres que en el mensaje te los ponga

a = DLookup("nombrecontacto", "clientes", "idloquesea=8")

DoCmd.SendObject , , "richtextformat(*,rtf)", "'" & [Email] & "'", , , "" & [Asunto] & "", "" _
& "Estimado amigo " & a & ". Te mando  " & [Producto] & " al precio de  " & [Precio] & "", True

Con lo cual en el correo aparecería

Estimado amigo Miguel Ángel. Te mando jamones al precio de 30 euros...

Respuesta
1

Diego: Tengo un par de ejemplos en éstos enlaces.

http://www.mediafire.com/download/ccja396gccjzwfu/EMailConOutLook.rar 

Y éste otro

http://www.mediafire.com/download/6vthvvskp3hopdo/EnvInformesFiltrados.rar 

Mira si te pueden servir como punto de partida. Saludos >> Jacinto

¡Gracias! Eres muy amable.

Creo que mi problema es la extracción de información de varias tablas ya que depende de muchas cosas.

Diego:

Si las tablas las tienes relacionadas, crea una consulta y la haces servir como Recordset para extraer la información que desees. Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas