Newsgroup: it.comp.appl.access
Titolo: Stampa unione

Grazie ad una routine postata da Sergio Mazza sono riuscito ad
aggiungere una query ad un doc word che aveva già dei campi unione
E' possibile con lo stesso procedimento utilizzare più query
differenti per ottenere un risultato più complesso?
Grazie ancora
Max
Posto di seguito il codice di Sergio Mazza, per altro gentilissimo e
ingambissima
Sub stampaDettaglio()
'gestisco l'errore altrimenti rimango in mutande
On Error GoTo stampaDettaglio_err
'chiamiamo word e per ora non lo rendiamo visibile
Dim oApp As Word.Application
Set oApp = CreateObject("Word.Application")
oApp.Visible = False
'variabile contenente il recordset del Dettagglio
Dim rstDett As Recordset
'variabile contenente l'istruzione sql
Dim stringaSql As String
'apro il modello della fattura
oApp.Documents.Open "C:\Documenti\Fattura.doc"
'eseguo la stampa unione dell'intestazione con output su un nuovo
documento
With oApp.Documents(1).MailMerge
    .Destination = wdSendToNewDocument
    .Execute
End With
'attivo il documento creato
oApp.Windows(1).Activate
'cerco la stringa "Quì ci inserisco l'elenco"
oApp.Selection.Find.ClearFormatting
With oApp.Selection.Find
    .Text = "Quì ci inserisco l'elenco"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
oApp.Selection.Find.Execute
'mi creo la query che mi restituisce il dettaglio della fattura
stringaSql = "Select numeroArticolo, DescrizioneArticolo,
costoUnitario,
quantita From DettaglioFattura Where idFattura = " & forms!Fattura!id
'mi prendo il recordset
Set rstDett = CurrentDb.OpenRecordset(stringaSql)
'tanto pe' nun sape' ne' legge ne' scrive
rstDett.MoveLast
rstDett.MoveFirst
'inserisco la tabella con X colonne, intestazione Y righe
oApp.ActiveDocument.Tables.Add Range:=oApp.Selection.Range,
NumRows:=rstDett.RecordCount, NumColumns:=4
'tabella senza griglia
oApp.Selection.Tables(1).Borders.Enable = False
'scrivo l'intestazione della tabella
With oApp.Selection
    .TypeText Text:="Numero Articolo"
    .MoveRight Unit:=wdCell
    .TypeText Text:="Descrizione"
    .MoveRight Unit:=wdCell
    .TypeText Text:="Costo unitario"
    .MoveRight Unit:=wdCell
    .TypeText Text:="Quantità"
End With
'scrivo il dettaglio della fattura
Do While Not rstDett.EOF
    With oApp.Selection
        .MoveRight Unit:=wdCell
        .TypeText Text:=rstDett!numeroArticolo
        .MoveRight Unit:=wdCell
        .TypeText Text:=rstDett!descrizioneArticolo
        .MoveRight Unit:=wdCell
        .TypeText Text:="L. " & Format(Nz(rstDett!costoUnitario, 0),
"#,###")
        .MoveRight Unit:=wdCell
        .TypeText Text:="L. " & Format(Nz(rstDett!quantita, 0),
"#,###")
    End With
    rstDett.MoveNext
Loop
'posso visualizzare il risultato per un controllo
oApp.Visible = True
'stampo il documento appena creato
oApp.ActiveDocument.PrintOut
'chiudo il modello documento senza salvarlo
oApp.Windows(1).Close SaveChanges:=wdDoNotSaveChanges
'chiudo il documento senza salvarlo
oApp.Windows(2).Close SaveChanges:=wdDoNotSaveChanges
'chiudo word
oApp.Quit
'chiudo il recordset
rstDett.Close
'rilascio gli oggetti
Set oApp = Nothing
Set rstDett = Nothing
MsgBox "Stampa terminata."
stampaDettaglio_exit:
    Exit Sub
stampaDettaglio_err:
    oApp.Visible = True
    MsgBox Err.Number & ", " & Err.Description
End Sub

 ha scritto nel messaggio
news:3b4aa797...@News.CIS.DFN.DE...

Dovresti indicare, magari con un esempio, cosa intendi per "ottenere un
risultato più complesso"...
Ciao.


Prendendo la strada del report avevo limiti nella formattazione,
rispetto alla Stamapa unione con word, ma nei reports potevo usare
diversi sottoreport e in casi estremi sottoreports di sottoreports,
mentre con l'altro metodo..beh almeno io non lo so
Questo intendevo per più complessi
Grazie ancora per l'attenzione
Max