Access - PROBLEMA CON CODIGO DE ACCESS

 
Vista:

PROBLEMA CON CODIGO DE ACCESS

Publicado por Rebeca (6 intervenciones) el 24/03/2004 13:59:15
necesito ayuda desesperadamente!!!resulta que necesito: cuando en access tengo variuas
tablas de una base de datos necesito que al crear un boton en un formulario, con el
código que le pongamos, me cree por cada tabla un nuevo documento word, y cada documento
me salga ya combinado por correspondencia.
Se que esto se puede hacer, por cada tabla por separado, es decir un boton por tabla
y que me lo vaya creando, pero lo que necesito yo es el codigo para el boton, para que me
lo haga todo automatico, y de esta manera toner que estar dandole todo el rato a combinar
correspondencia por cada tabla que tengo en la base de datos. espero que pro favor me
respondan pronto con la solucion correcta porq es una cosa que la necesito urgente y es
muy importante para mi trabajo. muchisimas gracias a tod@s aquell@s que puedan ayudarme
con mi problema. Mi correo electronico es: [email protected]
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

PROBLEMA CON CODIGO DE ACCESS

Publicado por Alejandro (4142 intervenciones) el 04/05/2023 23:35:06
Para lograr lo que quieres hacer, necesitas crear una macro o un procedimiento VBA que itere a través de las tablas de tu base de datos y, para cada tabla, cree un nuevo documento de Word con la combinación de correspondencia ya realizada.

Aquí te dejo un ejemplo de código VBA que puedes utilizar como punto de partida:

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
Sub CrearDocumentosWord()
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim strSQL As String
    Dim wdApp As Word.Application
    Dim wdDoc As Word.Document
 
    Set db = CurrentDb()
    Set wdApp = CreateObject("Word.Application")
 
    For Each tdf In db.TableDefs
        If Left(tdf.Name, 4) <> "MSys" Then ' Omitir tablas del sistema
            strSQL = "SELECT * FROM [" & tdf.Name & "]"
            Set wdDoc = wdApp.Documents.Add()
            wdDoc.MailMerge.OpenDataSource _
                Name:=CurrentProject.FullName, _
                SQLStatement:=strSQL
            wdDoc.MailMerge.Destination = wdSendToNewDocument
            wdDoc.MailMerge.Execute
            wdApp.Visible = True
            wdDoc.Activate
            wdDoc.SaveAs "C:\Documentos\" & tdf.Name & ".docx" ' Cambiar ruta según necesidad
            wdDoc.Close wdDoNotSaveChanges
        End If
    Next tdf
 
    wdApp.Quit
    Set wdDoc = Nothing
    Set wdApp = Nothing
    Set tdf = Nothing
    Set db = Nothing
End Sub

Este código crea un nuevo documento de Word para cada tabla en tu base de datos (omitiendo las tablas del sistema) y utiliza la combinación de correspondencia para llenar cada documento con los datos de la tabla correspondiente. Los documentos se guardan en la carpeta "C:\Documentos\" (cambia la ruta según tus necesidades).

Espero que esto te ayude a resolver tu problema.
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