General

6.107 Utilizzare word per stampare un documento di tipo fattura
  Sergio Mazza
(D)
Come utilizzare word per stampare un documento di tipo fattura (intestazione ed elenco dettaglio) con i dati presi da access?

(R)
Esiste in word un "codice di campo" (spulciate l'help please!) chiamato DATABASE; non fa altro che creare una connessione al database e leggere i dati o da tabella o da stringa sql specificata nel codice di campo e presentarli formattati come una tabella.

L'mdb allegato (in versione '97) contiene due tabelle:
- tabella Citta con i campi: [id] e [citta];
- tabella Anagrafica con i campi: [id], [nominativo] e [idCitta];

Il documento word che vogliamo realizzare deve contenere il nome della città e l'elenco dei nominativi (e id) associati.

Questi i passi per crearvi un esempio:
- create un nuovo documento word;
- con stampa unione associate il documento alla tabella Citta presa dall'mdb Tabelle;
- inserite il testo "Città: " e inserite il campo unione Citta tramite la barra strumenti "Stampa unione";
Es.
Città: "citta"
- due righe in basso, inserite il campo "DATABASE" tramite la barra strumenti "Database";
- come Dati indicate l'mdb "Tabelle" scegliendo la tabella "Anagrafica";
- nelle "Opzioni query" indicate la condizione per filtrare i dati;
Es.
IdCitta uguale a 010100;
(il filtro che inserite vi servirà per individuare dove modificare l'istruzione sql che verrà creata)

- premete il bottone "Inserisci dati" e prima di premere il bottone "Ok" attivate l'opzione "inserisci come campo";
- verrà visualizzato l'elenco dei dati filtrati;
Es.
id nominativo idCitta
4726 DETTORI GIULIANA 010100
4760 DE FLORIANI LEILA 010100
5558 CODA ANDREA 010100
5750 MEIRANA MARIA 010100
5889 PIZZI CORRADO 010100
7545 GIANNINI FRANCA 010100

ora bisogna inserire nella condizione il nome del campo da utilizzare come variabile. Per fare questo dobbiamo visualizzare il codice del campo DATABASE; con la combinazione dei tasti ALT-F9 si attiva/disattiva la visualizzazione del codice.

- premiamo ALT-F9;
Es. (visualizzato)

{DATABASE \d "C:\\dati\\Tabelle.mdb" \c "TABLE Anagrafica" \s "SELECT [id], [nominativo], [idCitta] FROM [Anagrafica] WHERE (([idCitta] = '010100'))" \h}

- eliminiamo il testo '010100', che è la stringa inserita da noi per la condizione, e inseriamo il campo unione [id] tramite la barra strumenti "stampa unione";
Es.
{DATABASE \d "C:\\dati\\Tabelle.mdb" \c "TABLE Anagrafica" \s "SELECT [id], [nominativo], [idCitta] FROM [Anagrafica] WHERE (([idCitta] = {MERGEFIELD id}))" \h}

Ora premiamo ALT-F9 per ripristinare la visualizzazione dei codici di campo e se facciamo la stampa unione si dovrebbe visualizzare un documento per ogni città con l'elenco dei nominativi associati.

Buon lavoro...

Download:
 
  MergeUnoAMolti.zip (17Kb) MSAccess97 database


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.