Newsgroup: it.comp.appl.access
Titolo: Stampa unione con Word, le sessioni di Access si moltiplicano

Salve a tutti.
Ho un problema con la stampa unione da Access a Word (versione 97).
Creando, via codice da Access, un nuovo documento Word, basato su un
modello (.Dot) predisposto per la stampa unione,  vengono attivate due
nuove sessioni di Access.
Se nel modello imposto delle opzioni di query per il filtraggio dei
record le nuove sessioni di Access diventano 5.
Il problema è sicuramente di Word perchè avviene la stessa cosa partendo
da Word.
Qualcuno sa dirmi come risolvere il problema facendo utilizzare a Word
la sessione attiva di Access o quantomeno limitare ad una sola nuova
sessione dell'origine dati per la stampa unione.
Anticipatamente ringrazio
RossoRi

 ha scritto nel messaggio
news:3977FD6C...@iol.it...

Mi vengono in mente due possibilità:
1 - togliere nel documento Word il riferimento del collegamento all'mdb per
riattivarlo via VBA da Access quando apri il documento (.dot);
2 - creare una subroutine in VBA nel documento Word (.dot) che "cerca" la
sessione di Access per collegarsela;.
Permettimi di esprimere un pensiero; a mio avviso non è necessario
utilizzare un modello di documento (.dot) per effettuare il mailmerge, tanto
Word crea un'altro documento (.doc) sulla base del "modello" (.doc
anch'esso)...
Ciao.

 RossoRi
per caso hai dato un titolo alla tua applicazione access?
se si, prova ad eliminarlo e a ripetere il mailmerge.
fammi sapere.
-- 
Federico
--------------------------------------
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access
--------------------------------------
Tutte le richieste che mi arrivano
in privato, vengono cestinate.
--------------------------------------
Rimuovi paperino. per e-mail
--------------------------------------

 anch'esso)...
In primo luogo un ringraziamento a Sergio e a Federico per l'interessamento
le  Vs. risposte mi hanno fatto riflettere ulteriormente
ed ho risolto il problema creando un modello di documento Word (.Dot), con
l'autocomposizione Stampa Unione di Access,
partendo dalla visualizzazione della Query destinata a tale scopo, in tal modo
i riferimenti all'origine dati immessi automaticamente
in Word sono relativi al Task di Access e non ad un File .Mdb (unica
possibilità ammessa in Word).
A questo punto mi piacerebbe conoscere il codice utilizzato da Access, se
qualcuno avesse qualche idea e volesse postarlo
potrebbe essere un " Tips e Tricks" interessante.
Per quanto riguarda l'osservazione fatta da Federico in effetti il file .Mdb
aveva un titolo ma la sua cancellazione non ha sortito
alcun effetto.
Per quanto riguarda i suggerimenti di Sergio purtroppo non ho la più pallida
idea di come utilizzare il codice VBA per le soluzioni
che hai proposto, in tal senso avrei bisogno di qualche indicazione e
suggerimento di partenza, mentre per quanto riguarda il
comportamento di Word è un aspetto che non conoscevo benchè la partenza da un
modello .Dot limita il rischio di involontarie
modifiche da parte degli utilizzatori.
Saluti RossoRi

 [cut]
ti ho chiesto questo, perche', per il mailmerge, word
utilizza DDE, quindi se e' collegato ad access cerca una
finestra con titolo "Microsoft Access", non trovandola (gli
hai dato un titolo diverso) apre un'altra sessione.
questa cosa, naturalmente, l'ho provata a mie spese, nel
senso che ci ho sbattuto la testa per tantissimo tempo
prima di capire quale era il problema.
generalmente io faccio cosi':
creo un template word e al posto dei campi collegati metto
dei riferimenti tra parentesi quadre ([Cognome]); da access
apro il template, cerco e sostituisco tutti i riferimenti
con i relativi valori;
salvo il documento.
questo metodo mi risulta molto utile quando, nel documento,
devo inserire una tabella con dati che sono legati da una
relazione 1-molti con il record principale.
in questo caso metto un riferimento del tipo [indirizzi],
da access mi posiziono in quel punto e creo la tabella via
codice.
forse il tutto e' un po' piu' lento, ma da quando l'ho
adottato non ho piu' problemi con word.
naturalmente c'e' da scrivere molto piu' codice! :-)



Non è particolarmente difficile realizzare un documento word che si collega
ad access;
- fai una copia del tuo documento originale;
- rimuovi il riferimento al collegamento dell'mdb: strumenti - stampa
unione - documento principale - ripristina formato normale;
- chiudi (non il documento) e salva;
- crea una macro e chiamala AutoOpen e in "memorizza macro in" selezioni il
nome del tuo .doc, così sarà visibile solo a quel documento; la macro
AutoOpen è eseguita quando si apre il documento;
- bloccala appena avviata;
- vai in strumenti - macro - macro e seleziona AutoOpen e premi modifica,
dovresti avere una situazione del genere:
Sub AutoOpen()
'
' AutoOpen Macro
' Macro registrata il 24/07/00 da Sergio MAZZA
'
End Sub
- prima dell'End Sub inserisci il codice che ripristina il collegamento
all'mdb:
With ActiveDocument.MailMerge
    .MainDocumentType = wdFormLetters
    .OpenDataSource Name:="c:\documenti\NomeTuoMDB.mdb", LinkToSource:=True,
AddToRecentFiles:=False, Connection:="TABLE NomeDellaTabellaoQueryAccess"
End With
- salva e chiudi;
- chiudi tutto salvando dove richiesto;
- in Access puoi inserire il codice che avvia il mailmerge nell'evento "su
clic" di un bottone:
Sub Comando84_Click()
On error goto Comando84_Click_err
Dim app As Word.Application, doc As Word.Document
DoCmd.Hourglass True
Set app = CreateObject("Word.Application")
'se vuoi puoi non rendere visibile l'operazione rimuovendo la successiva
istruzione
app.Visible = True
'apre il documento
Set doc = app.Documents.Open(filename:="c:\documenti\NomeTuoDocumento.doc")
'esegue il mailmerge specificando la destinazione in un nuovo documento
With doc.MailMerge
    .Destination = wdSendToNewDocument
    .Execute
End With
'chiude il file origine
doc.Close False
'visualizza il documento risultante dal mailmerge
app.Visible = True
DoCmd.Hourglass False
exit sub
Comando84_Click_err:
    DoCmd.Hourglass False
    set doc = nothing
    set app = nothing
    Raise Err.Number
End Sub
- salva tutto e prova.
Spero di non essemi dimenticato nulla; considera che dall'apertura del .doc,
al ripristino della connessione e all'attivazione dei comandi DDE passerà
qualche secondo (dipende dal pc) e devi inserire i riferimenti alla libreria
di Word...
Ciao e buon lavoro.