Newsgroup: it.comp.software.database
Titolo: Aiuto con pulsante di comando

Salve, ho un problema con microsoft access. Io non me ne intendo molto di
programmazione, quindi magari è più semplice di quanto penso, ad ogni modo
non ci sono riuscito.
allora, il mio problema è questo: io gestisco il database di
un'associazione, con circa 2000 records.
Quello di cui ho bisogno, è che da una maschera, tramite un pulsante di
comando venga aperta una sessione di Word, con un modello di documento
caricato, nella fattispecie una lettera, che abbia nell'intestazione
(caro...) il nome ed il cognome del record visualizzato nella maschera
quando si è premuto il pulsante.
E' possibile fare una cosa del genere? grazie in anticipo a tutti.
Velio Pazzagli

 ha scritto nel messaggio
news:vUl86.51363$eB2.4...@news.infostrada.it...

Se intendi stampare una lettera nella quale variare solo i dati personali
(nome, indirizzo, quota iscrizione ...) allora potresti agire come segue:
- Ti crei un documento Word che sarà la tua lettera tipo;
- Sul menu strumenti, seleziona stampa unione (meglio se dai uno sguardo
all'help a tale voce);
- Se vuoi richiamare il documento Word alla pressione di un tasto sulla
maschera Access, il codice da inserire è il seguente:
    Dim oApp As Object
    Set oApp = CreateObject("Word.Application")
    oApp.Visible = True
    oApp.WindowState = 1
    oApp.Run MacroName:="Macro per stampa"
dove la macro indicata all'ultima riga effettua la stampa unione e dovrebbe
contenere un'istruzione del genere:
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .MailAsAttachment = False
        .MailAddressFieldName = ""
        .MailSubject = ""
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=True
    End With
Ciao
LaLo

Allora, grazie per l'aiuto, ma c'è qualcosa che non capisco.
Il documento word è ok, la stampa unione non è un problema.
per inserire il codice che mi hai detto in access, devo selezionare le
proprietà del comando, scegliere routine evento su clic e inserire il codice
nella finestra dell'editor visual basic, giusto?
ma ora, come faccio a dire che deve aprire proprio il documento word che io
ho creato in precedenza? e soprattutto, il codice della macro, dove devo
inserirlo?
grazie.


La pacro successiva è una macro di Word. Prima della stampa unione devi
aprire il documento con un comando del genere:
    Documents.Open FileName:="Lettera.doc", ConfirmConversions:=False, _
        ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", Format:=wdOpenFormatAuto
La macro puoi scriverla con il VBA di Word (Strumenti-> Macro->Editor di
Visual Basic).
HTH
LaLo

"LaLo" <reg...@LLtin.it> ha scritto nel messaggio
news:93ukuc$t5l$1...@pluto.sm.dsi.unimi.it...
[CUT]
Scusa ma mi sono accorto che non ho spiegato bene. La riga:
oApp.Run MacroName:="Macro per stampa"
che ti ho postato precedentemente, esegue una macro di Word. In questa macro
devi aprire il documento che ti interessa (vedi il post precedente) e poi
eseguire una stampa unione.
LaLo