Enviar registro actual de formulario por e-mail en pdf Access

Perdonad pero tengo un problemilla, tengo un formulario en Acces y me gustaría poder enviar el registro que acabo de rellenar adjunto como pdf por correo. Lo he intentado mediante un botón en el que al hacer clic se ejecuta una macro que contiene la acción "enviarporcorreoobjetodebasededatos", pero envía todos los registros de ese formulario y no el actual. No he encontrado acciones de macro para poder enviar el registro actual, por lo que me imagino que habrá que usar vba, y supongo que la estructura tiene que ser con acciones del tipo docmd sendobject combinado con un select o algo así para seleccionar el registro actual, pero ya os digo soy bastante dummy en vba y si alguien me pudiera explicar la sintaxis le estaría muy agradecido.

2 Respuestas

Respuesta
1

Si te tuviera que aconsejar, y suponiendo que el formulario tenga un control que identifique únicamente a un registro en particular, por ejemplo, Idcliente, Nombrecliente. Haría un informe, con la tabla o consulta origen del formulario. Pondría un botón(no es necesario, pero sí didáctico) y en sus propiedades-eventos-Al hacer clic pondría

DoCmd.OpenReport "cliente", acViewReport, , "cliente='" & Me.Cliente & "'"
DoCmd.SendObject acReport, "Cliente", "PDFFormat(*.pdf)", "" & Me. Email & "", "", "", "Envio pedido", "Como no pagues, voy a verte", True, ""

Esto suponiendo que en el formulario haya un control donde ponga el mail de ese cliente.

Lo explico. Al pulsar el botón se abre el informe cliente sólo con el registro en que el idcliente es igual al del que está en ese momento en pantalla y a su vez, te transforma ese informe al formato PDF y lo envía por correo como archivo adjunto.

Con respecto a lo que tu has puesto en tu propia respuesta, lo primero sería "aislar" ese registro en concreto con

me.recordsource="......con lo que dejarías sólo el registro que te interesara en el formulario y luego ya podrías poner

Docmd.sendobject...

Respuesta
1

Ya he encontrado la forma de mandar correo por vba, mi estructura es la siguiente:

Private Sub Enviar_Click()
Dim mailto As String
Dim ccto As String
Dim bccto As String
mailto = "el correo que sea"
ccto = ""
bccto = ""
emailmsg = "el mensaje de mi email"
mailsub = "el titulo de mi correo"
On Error Resume Next
'acFormatpdf will export the result of query into pdf format and will add the pdf as attachment'
DoCmd. SendObject acSendForm, “nombre de mi formulario”, acFormatPDF, mailto, ccto, bccto, mailsub, emailmsg, True
End Sub

Pero ahora bien, ¿cómo hago para que sólo me envíe el registro actual? ¿Cómo puedo integrarlo dentro de este código?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas