Categories: Office

Creare Documenti Word con Access

Programmando una finestra di Access con il linguaggio VBA ( Visual Basic for Application ), utilizzato in tutto Office per scrivere le macro, è anche possibile esportare i dati da una o più tabelle ad un documento Word tramite un modello con i campi modulo. Vediamo il procedimento con i passi principali. Per prima cosa dobbiamo aprire a runtime tramite COM un oggetto del nostro modello e creare al volo un documento, per fare questo è richiesto come riferimento l’oggetto Word ovviamente, in scrittura macro in menu strumenti -> riferimenti, trovare Word Object o qualcosa di simile nell’oceano di oggetti COM e spuntarlo.

Dim myApp As Word.Application, myDoc As Word.Document
Set myApp = CreateObject("Word.Application")
Set myDoc = myApp.Documents.Add("miomodello.dot")

Con la prima riga di codice abbiamo dimensionato un oggetto myApp di tipo Word.Application per gestire la finestra principale di Word ed un oggetto myDoc di tipo Word.Document per gestire il documento con i campi modulo. Nella riga successiva istanzio la variabile myApp e creo l’oggetto Application di Word e nella terza inizializzo il mio documento con il mio modello.

Dim myData As DAO.Database, myRec As DAO.Recordset
Set myData = CurrentDb
Set myRec = myData.OpenRecordset("SELECT * FROM Tabella WHERE IDValore = X)

La prima riga di istruzioni dimensiona una variabile oggetto myData di tipo DAO.Database e myRec di tipo DAO.Recordset, anche per queste istruzioni servono i riferimenti agli oggetti DAO ( Data Access Object ), il vecchio modo di accedere ai dati di Microsoft, nell’elenco dei riferimenti. La seconda riga assegna il database corrente alla variabile myData, mentre la terza riga apre la connessione alla tabella ( nell’esempio ho preso una tabella generica ) dei dati selezionando i valori con una istruzione SQL ( Structured Query Language ) di cui abbiamo parlato in questo articolo.

myDoc.FormFields("Nome Campo Modulo").Result = myRec![Nome Campo Tabella]

Quest’ultima istruzione consente di inserire al posto del campo modulo “Nome Campo Modulo” il valore del campo “Nome Campo Tabella” del database ed il gioco è fatto, tutto con il VBA. Alla fine occorre chiudere le risorse allocate, sia il database che l’applicazione Word e mostrare l’applicazione di Word in tutto il suo splendore con un documento riempito con i dati provenienti dal database.

myApp.Visible = True

myRec.Close
Set myData = Nothing
Set myRec = Nothing
Set myDoc = Nothing
Set myApp = Nothing

Volendo si può anche tenere invisibile l’applicazione Word e stampare al volo il documento e poi ricordarsi di chiudere l’applicativo Word con myApp.Quit nel nostro caso. Se desiderate avere maggiori informazioni o discutere con altri e con me di questo argomento potete visitare il nostro forum sulla programmazione.

Share
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Recent Posts

Un Abbonamento per Tutti i Software

Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…

1 anno ago

Software di Magazzino Gratuito

MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→

1 anno ago

Mettere il PC in Lock Screen

In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…

3 anni ago

Fare il reset togliendo la corrente

In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…

3 anni ago

Prossimi Aggiornamenti Software

Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…

3 anni ago

Come Eliminare i Files in Windows

Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→

4 anni ago