Newsgroup: it.comp.appl.access
Titolo: StampaUnione

Chiedo il Vostro aiuto: vorrei creare delle lettere con STAMPAUNIONE dove
inserire record diversi in funzione di un unico record.
Mi spiego con il caso concreto: ho un file excel con record CAP e Via
(semplifico), devo inserire in una lettera per ogni CAP tutte le vie di
riferimento
CAP Indirizzo
20100 via Bianchi
20100 Via Verdi
10100 Via Rossi
Vorrei che mi venissero solo 2 lettere (cap 20100 e 10100), invece mi
vengono sempre e comunque 3 lettere.
Riuscite a darmi qualche consiglio?
Ciao e grazie
--------------------------------
Inviato via 
http://usenet.libero.it

 ha scritto nel messaggio
news:151Z24Z29Z165Y1...@usenet.libero.it...

Ti invio una soluzione molto semplice; il mio esempio è basato su word -
access, ma puoi fare la stessa cosa con word - excel...
-------- inizio -----------
Salve a tutti;
sono un po' latitante ma le ultime battute sull'argomento "stampa unione" mi
hanno dato la molla per la ricerca di altre soluzioni. In effetti c'è una
soluzione molto semplice che avevo visto utilizzare in word 2000 e pensavo
fosse una features di quel pacchetto; invece (mea culpa) la stessa soluzione
è possibile utilizzarla anche nel pacchetto '97.
Esiste in word un "codice di campo" (spulciate l'help please!) chiamato
DATABASE; iddu 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.
Quindi per realizzare un documento word di tipo fattura (dati intestazione
ed elenco dettaglio) i passi sono questi (da modificare a secondo delle
proprie necessità):
- tabella o query con i dati dell'intestazione della fattura (parte alta -
lato uno della relazione);
- creare il documento word, scrivere il documento e legarlo (stampa unione)
alla tabella/query (lato uno);
- visualizzare (sempre da word) la barra strumenti "DATABASE";
- posizionare il cursore dove vogliamo inserire la tabella dei dati riferiti
al dettaglio (lato molti) e premere il bottone "Inserisci database";
seguendo le istruzioni del wizard noi creiamo tutti i riferimenti per
leggere i dati (molti) della fattura indicando anche il campo della
condizione where che ci serve per estrarre solo quelli riferiti a quel
cliente o id. Ricordatevi di spuntare l'opzione "inserisci come campo".
Ora manca di inserire la "variabile" nella condizione where; con ALT-F9
possiamo intervenire nelle opzioni del codice di campo visualizzandone il
contenuto che dovrebbe essere simile a questo:
{DATABASE \d "C:\\dati\\fatture.mdb" \c "TABLE Dettagli" \s "SELECT
[articolo], [prezzo], [idFattura] FROM [Dettagli] WHERE (([idFattura] =
3 ))" \h}
Praticamente la condizione è preimpostata per restitutire i dettagli della
fattura con idFattura = 3; quindi bisogna inserirgli il riferimento al campo
id della fattura. Possiamo farlo perché il documento word è legato alla
tabella/query (lato uno) delle fatture.
togliamo il 3 (l'idfattura), lasciando il cursore vicino al segno
dell'uguale, dalla barra strumenti "Stampa unione" - "inserisci campo
unione"  e scegliamo "Id" (della fattura).
La situazione dovrebbe essere questa:
{DATABASE \d "C:\\dati\\fatture.mdb" \c "TABLE Dettagli" \s "SELECT
[articolo], [prezzo], [idFattura] FROM [Dettagli] WHERE (([idFattura] =
{MERGEFIELD id} ))" \h}
Ora premiamo ALT-F9 per ripristinare la visualizzazione dei codici di campo
e se facciamo la stampa unione si dovrebbe materializzare il nostro sogno...
Una fattura si word!!
Spero di essermi spiegato...
Un saluto a tutti e buon lavoro.
--
Sergio MAZZA
'-------- fine ------------
Ciao.
--
Sergio MAZZA