Access - Mandar datos a Word y mandar documentopor mail

 
Vista:

Mandar datos a Word y mandar documentopor mail

Publicado por fzombie (31 intervenciones) el 19/04/2001 21:24:46
Saludos a todos, espero puedan ayudarme.
Tengo el resultado de una consulta el cual quiero mandar a una plantilla de word, y que a su vez se abra el cliente de correo y se anexe esta plantila al correo que voy a enviar.
Alguna manera de hacer esto ???
Graciaspor su ayuda.
fzombie
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 Alejandro

Mandar datos a Word y mandar documentopor mail

Publicado por Alejandro (4142 intervenciones) el 14/04/2023 20:23:14
Sí, es posible hacer lo que estás solicitando utilizando VBA (Visual Basic para Aplicaciones) en Access. A continuación, te proporciono un ejemplo de cómo podrías lograrlo:

1. Crear la plantilla de Word: Crea una plantilla de Word que contenga marcadores de posición (placeholders) donde se insertarán los datos desde Access. Guarda la plantilla en una ubicación accesible para tu aplicación de Access.

2. Crear un botón en el formulario: Crea un botón en el formulario de Access desde donde deseas enviar el correo electrónico. Asigna el siguiente código al evento "Al hacer clic" del botón:

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Private Sub btnEnviarCorreo_Click()
 
    'Establecer una referencia al objeto de la aplicación de Word
    Dim objWord As Object
    Set objWord = CreateObject("Word.Application")
 
    'Establecer una referencia al documento de Word basado en la plantilla
    Dim objDoc As Object
    Set objDoc = objWord.Documents.Add("ruta_de_la_plantilla")
 
    'Realizar la consulta en Access y obtener los datos
    Dim strSQL As String
    strSQL = "SELECT campo1, campo2, campo3 FROM tabla"
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset(strSQL)
 
    'Insertar los datos en la plantilla de Word utilizando los marcadores de posición
    objDoc.Bookmarks("Marcador1").Range.Text = rs("campo1")
    objDoc.Bookmarks("Marcador2").Range.Text = rs("campo2")
    objDoc.Bookmarks("Marcador3").Range.Text = rs("campo3")
 
    'Cerrar la conexión de la base de datos
    rs.Close
 
    'Guardar el documento de Word con un nombre único
    Dim strNombreArchivo As String
    strNombreArchivo = "NombreUnicoDelArchivo.docx"
    objDoc.SaveAs strNombreArchivo
 
    'Cerrar el documento y la aplicación de Word
    objDoc.Close
    objWord.Quit
 
    'Crear un objeto Outlook para enviar el correo electrónico
    Dim objOutlook As Object
    Set objOutlook = CreateObject("Outlook.Application")
    Dim objMensaje As Object
    Set objMensaje = objOutlook.CreateItem(0)
 
    'Agregar el archivo adjunto al correo electrónico y enviarlo
    objMensaje.Attachments.Add strNombreArchivo
    objMensaje.To = "destinatario@correo.com"
    objMensaje.Subject = "Asunto del correo electrónico"
    objMensaje.Body = "Mensaje del correo electrónico"
    objMensaje.Send
 
    'Eliminar el archivo temporal de Word
    Kill strNombreArchivo
 
    'Liberar los objetos utilizados
    Set objOutlook = Nothing
    Set objMensaje = Nothing
    Set objWord = Nothing
    Set objDoc = Nothing
 
End Sub

Ten en cuenta que deberás reemplazar "ruta_de_la_plantilla" con la ruta completa de la plantilla de Word que creaste en el paso 1, y "campo1", "campo2" y "campo3" con los nombres de los campos que deseas insertar en la plantilla.

Espero que esto te sea de ayuda. ¡Buena suerte!
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