Access, Envío de correos con los datos de una tabla

Solicito su ayuda para al dar click en un Botón, se envíe un email.

En la tabla envioEmail tengo los siguientes campos.

id = Autonumérico, Destinatario, Asunto, Mensaje

En la tabla proyectos campo codProyecto y NombreProyecto

En el formulario tengo el textboxCodigo con el Código del Proyecto.

La idea es que al dar click en el botón enviar, tome los datos de la tabla envío email Destinatario, Asunto y mensaje, pero en el asunto, tome el campo asunto de la tabla envíoEmail, el textboxCodigo y busque de la tabla el NombreProyecto.

Ejemplo asunto: Nuevo Pedido: P-1 Proyecto 1

1 respuesta

Respuesta
1

En principio el problema que tienes es que, tal como lo pones en la pregunta, no hay ningún campo que relacione ambas tablas, por tanto no puedes usar la función Dlookup para localizar el destinatario en función del codproyecto que elijas. Por ejemplo, si en la tabla Proyectos tuvieras algún campo, como Id, Destinatario, si podría poner en el código del botón ese, por ejemplo

Dim s as string

s=Dlookup("destinatario","envioemail","Id=...") de forma que ya podrías poner el destinatario, el asunto, etc en la instrucción de enviar email.

Hola Icue, muchas gracias por tu tiempo.

Ok, entonces en la tabla envioEmail agregué el campo NombreDestinatario, lo mismo en la tabla Proyectos.

Saludos y muchas gracias

Siguiendo con las preguntas. Eso del Nombre del proyecto, ¿qué es? ¿Un informe, un archivo para adjuntar etc.?

Por ejemplo, si tengo la tabla Destinatarios, que hago tal como dices tú, pero que yo no la haría así, ya que destinatario hay uno, pero asuntos y mensajes puede haber varios

Con la tabla Proyectos hago un formulario( en la tabla Proyectos le he añadido un campo IdDestinatario

Al pulsar el botón(ya te he dicho que no sé que le envías no en que formato quieres enviarlo)

El código del botón es

Private Sub Comando7_Click()
Dim e As String, a As String, m As String
e = DLookup("email", "destinatarios", "iddestinatario=" & Me.IdDestinatario & "")
a = DLookup("asunto", "destinatarios", "iddestinatario=" & Me.IdDestinatario & "")
m = DLookup("mensaje", "destinatarios", "iddestinatario=" & Me.IdDestinatario & "")
DoCmd.SendObject acSendForm, "clientes", "PDFFormat(*.pdf)", "" & e & "", , , "" & a & "", "" & m & ""
End Sub

Hola Icue, gracias por la paciencia, creo lo mejor es replantearte la pregunta desde cero aclarando algunas cosas a las que no le dí el alance y seguramente yo no tenía la idea clara.

La idea principal (que no mencioné inicialmente) es que al momento de dar click en el boton enviarpedido se genere un correo automático al área de compras para que ellos sepan que hay que gestionar el pedido.

en el comboProyecto del formulario, el usuario elije el código del  proyecto al que compras le enviará el pedido, esto lo trae de la tabla tblProyectos cuyos campos son: codProyecto, NombreProyecto.

la tabla tblEnvioEmail, contiene un solo registro con los campos: id (campo Autonumérico), Destinatario (que contiene la dirección a la que se debe enviar el correo automático), Asunto (que contiene el texto: "Nuevo Pedido") y el campo Mensaje (que contiene el cuerpo del mensaje).

la idea es que al dar click en el botón:

enviar el correo a la dirección que hay en el capo destinatario de la tabla tblEnviarMail

Asunto = lo que hay en el campo Asunto de la tabla tblEnviarMail + el Código del proyecto que está en el comboProyecto + el nombre del proyecto que está en la tabla tblProyectos (buscando este nombre con lo que hay en comboProyectos) .

es decir solo es un aviso a compras informando de un nuevo pedido. no es un mail masivo ni con archivos adjuntos. (aunque tus respuestas me servirán para futuras necesidades).

nuevamente agradezco la paciencia y  la ayuda que me brindes para hacer esta tarea.

saludos.

Pero es exactamente igual. Al menos eso es lo que entiendo. Si siempre se le va a mandar el mensaje a [email protected], bastaría con poner( o incluso ni poner el campo Destinatario) con valor predeterminado ese valor. Por ejemplo si tengo el formulario

Pero ya te digo que se podía suprimir el destinatario. Cuando pulso el botón

En este caso el código del botón es

Private Sub Comando7_Click()
DoCmd.SendObject acSendNoObject, , , "" & Me.Destinatario & "", , , "Remitiendo un proyecto con número de código " & "" & Me.CodProyecto & "", "Estimado amigo Carlos. Te remito el proyecto " & "" & Me.NombreProyecto & ""
End Sub

Hola Icue, muchas gracias por las claridades, funciona perfecto.

pero una última, que le debo cambiar / agregar para que envíe el correo sin pre visualizarlo, es decir enviarlo de una..

gracias

Para que lo envíe directamente(aunque nunca en la vida he usado el Outlook) basta con ponerlo como

DoCmd.SendObject acSendNoObject, , , "" & Me.Destinatario & "", , , "Remitiendo un proyecto con número de código " & "" & Me.CodProyecto & "", "Estimado amigo Carlos. Te remito el proyecto " & "" & Me.NombreProyecto & "", False

Si quisieras comprobarlo antes de enviarlo, bastaría con quitar el False y poner True

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas