Creare Documenti Word con Access

Da una finestra Access vedremo come creare un documento Word completamente da codice, sfruttando le potenzialità di VBA e COM.

Programmare una finestra di Access per creare un documento Word con il linguaggio VBA (Visual Basic for Application), utilizzato in tutto Office per scrivere le macro, si può fare esportando dati da una o più tabelle a un documento Word tramite un modello con campi modulo. Di seguito i passi principali per realizzare questo procedimento.

Passi principali

  1. Aggiungere il riferimento a Word Object
    • In Access, aprire l’editor VBA.
    • Dal menu Strumenti → Riferimenti, selezionare “Microsoft Word Object Library” per poter utilizzare gli oggetti Word.
  2. Creare oggetti Word in VBA
Dim myApp As Word.Application, myDoc As Word.Document
Set myApp = CreateObject("Word.Application")
Set myDoc = myApp.Documents.Add("miomodello.dot")
  • myApp gestisce la finestra principale di Word.
  • myDoc gestisce il documento basato sul modello con i campi modulo.
  1. Aprire il database e il recordset
Dim myData As DAO.Database, myRec As DAO.Recordset
Set myData = CurrentDb
Set myRec = myData.OpenRecordset("SELECT * FROM Tabella WHERE IDValore = X")
  • myData rappresenta il database corrente.
  • myRec è il recordset con i dati selezionati tramite SQL.
  • È necessario aggiungere il riferimento a DAO (Data Access Object) nel menu Riferimenti.
  1. Inserire i dati nei campi modulo di Word
myDoc.FormFields("Nome Campo Modulo").Result = myRec![Nome Campo Tabella]
  • Questa istruzione sostituisce il campo modulo “Nome Campo Modulo” nel documento Word con il valore corrispondente dal database.
  1. Pulizia e visualizzazione
myApp.Visible = True
myRec.Close
Set myData = Nothing
Set myRec = Nothing
Set myDoc = Nothing
Set myApp = Nothing
  • Mostra l’applicazione Word con il documento compilato.
  • Chiude e libera le risorse allocate.
  1. Opzionale: stampa e chiusura invisibile
  • È possibile mantenere Word invisibile, stampare direttamente il documento e chiudere Word con myApp.Quit.

Per maggiori informazioni o discussioni su questo argomento, è possibile fare domande direttamente dei commenti.

Trovate queste e altre applicazioni sui nostri programmi gestionali.

Giampaolo Rossi
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Articoli: 324

2 commenti

  1. Molto ben fatto l’articolo e accurate le indicazioni di programmazione.Un unico, sconcertante neo: SQL non sta per Standard Query Language, ma per Structured Query Language

I commenti sono chiusi.

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.