Newsgroup: it.comp.appl.access
Titolo: MailMerge tra A2K e Word2000 e tra A2K e Word97:

In un db ho utilizzato il il codice seguente per effettuare il merfe tra A2K
e W2K (con riferimento attivo Microsoft Word 9.0 Object Library).
Tutto funziona bene.
Dal mio cliente (il quale ha A2K e Word 97) sebbene io abbia abilitato il
riferimento alla libreria Microsoft Word 8.0 Objetc Library la procedura non
funziona.
A2K apre il Word 97 ma non viene visualizzato il documento che gli viene
detto. Resta li fermo.
Il codice VB io l'ho scritto in base ad una specifica Microsoft che mi sono
studiato. Quest'ultima era stata scritta per Word 97.
Esempio di codice VB:
strWord="c:\prova.doc"
strSQL = "SELECT * FROM Clienti"
Set objWord = GetObject(strWord, "Word.Document")
objWord.Application.Visible = True
objWord.MailMerge.OpenDataSource Name:="C:\Pippo.MDB", LinkToSource:=True,
Connection:="TABLE Prova", SQLStatement:=strSQL
objWord.MailMerge.Execute
Qualcuno di Voi mi sa dare una dritta?
Grazie
UJ

 ha scritto nel messaggio
news:9kou7r$6j2$1...@fe2.cs.interbusiness.it...

Scusa mi servono altre informazioni; il documento "prova.doc" è già un
documento preparato per la stampa unione? Perché se il problema è filtrare i
dati già associati al documento non c'è bisogno di riassegnare il
datasourcename; basta fare un querystring:
Es.
'----------
objWord.MailMerge.DataSource.QueryString = "SELECT * FROM Clienti" & ""
'----------
poi esegui il mailmerge.execute...
Ciao.

 poi esegui il mailmerge.execute...
Si, il documento è già preparato per la stampa unione.
Effettivamente la tua annotazione è corretta! Non so però se risolve il mio
problema (domani posso provare direttamente dal cliente): infatti in
Word2000 tutto funziona perfettamente; il problema si verifica in Word 97!
Cosa ne pensi?
UJ

 UJ
Beh! Almeno ti velocizza la gestione del mailmerge.
In word'97 ho notato che in un documento per la stampa unione, se volevo
cambiare la base dati (stringa sql) magari modificando la condizione where,
dovevo inserire una stringa nulla al termine della stringa con la nuova
istruzione sql (...QueryString = "SELECT * FROM Clienti" & ""); altrimenti
non venivano memorizzati nel documento.
Di word'2000 non ho ancora approfondito molto, ho notato (per caso) che
hanno inserito un nuovo campo (si chiama "DATABASE" se non sbaglio) che
legge un db tramite stringa odbc; quindi è risolto il problema di crearsi un
documento tipo fattura (intestazione + dettaglio)...
Ciao.

 documento preparato per la stampa unione?
Questa tua domanda mi ha fatto venire un duddio:
è possibile creare, via Codice VB, un documento word partendo da zero?
E come posso dirgli in questo punto scrivi "questo", in quest'altro scrivi
"bla ... bla...", in questo punto inserisci il campo "Ragione Sociale", etc.
Ovviamente non pretendo che tu mi risponda a tutte queste domande.
Mi basterebbe se mi indichi dove posso studiarmi un db e del codice per
farlo (sempre se è possibile!).
Grazie.
UJ

 UJ
Certo che è possibile; ora non ho il codice "sotto mano" perché sono in un
altro ufficio, però, francamente... Machittelofaffà?
Il gioco vale la candela?
Secondo me no; la comodità della stampa unione non è paragonabile al
posizionamento e scrittura tutto eseguito via vba...
Lo studio del codice lo trovi avviando il registratore di macro in word ed
eseguendo a mano tutti i passi che devi riprodurre con vba in access.
Bloccato il registratore ti studi il codice vba prodotto e lo inserisci
nella sub (in access). Se conosci il modello degli oggetti che espone word e
access non ti sarà difficile modificare il codice prodotto da word...
Ciao.