Newsgroup: it.comp.appl.access
Titolo: Inserimento di 2 tabelle in Word ...

Il codice vba, sotto descritto e  realizzato con il vostro cortese aiuto, mi
permette di inviare, con la procedura di stampa unione in un modello di
documento Word, dei dati prelevati da una recorset di inserirli, all'interno
del nuovo documento ottenuto, in una tabella di due colonne senza
intestazione con bordi non visibili.
Volendo inserire, nello stesso documento,  un'altra tabella di dati ,
estratti in automatico come il precedenti, come bisognerebbe modificare il
codice?
( Personalmente mi sono imbobinato con levariabili e l'istruzioni SQL)
'gestisco L 'errore
On Error GoTo Err_Comando43_Click
'avvio le query di creazione tabella Attore-Convenuto
DoCmd.OpenQuery "attorequery" ' estrae i primi dati e crea la tabella
DoCmd.OpenQuery "convenutoquery" ' estrae e accoda i alla precedente tabella
'avvio Word
Dim oApp As Word.Application 'winword.exe 'Word '
Set oApp = CreateObject("Word.Application")
oApp.Visible = True
'variabile contenente il recordset del Dettagglio
Dim rstDett As Recordset
'variabile contenente l'istruzione sql
Dim stringaSql As String
'mi creo la query che mi restituisce il dettaglio della fattura
stringaSql = "SELECT Attore, AvvocatoA FROM AttUD;"
'mi prendo il recordset
Set rstDett = CurrentDb.OpenRecordset(stringaSql)
'controllo i dati
rstDett.MoveLast
rstDett.MoveFirst
'apro il modello del Verbale
oApp.Documents.Open "c:\documenti\VerbalePrimaUdienza1.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(2).Activate
'cerco la stringa "Elenco"
oApp.Selection.Find.ClearFormatting
With oApp.Selection.Find
    .Text = "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
'inserisco la tabella con X colonne, intestazione Y righe
oApp.ActiveDocument.Tables.Add Range:=oApp.Selection.Range,
NumRows:=rstDett.RecordCount, NumColumns:=2
'tabella senza griglia
oApp.Selection.Tables(1).Borders.Enable = False
'scrivo il dettaglio della fattura
Do While Not rstDett.EOF
    With oApp.Selection
        .TypeText Text:=rstDett(0)
        .MoveRight Unit:=wdCell
        .TypeText Text:=rstDett(1)
        .MoveRight Unit:=wdCell
       End With
    rstDett.MoveNext
Loop
'posso visualizzare il risultato per un controllo
oApp.Visible = True
'*************************************************
Arrivederci a presto.
Onir
-- 
Posted from 
smtp3.libero.it
 [193.70.192.53] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:001001c12d97$023dca00$eb511497@default...

Non hai specificato dove la devi posizionare questa tabella, spero sia
successiva alla prima; se č cosě non fai altro che scrivere nella posizione
scelta per la seconda tabella una stringa diversa dalla prima (per es.
Elenco2) e ricreare la nuova tabella con gli spessi passi eseguiti per la
prima.
Es.
'----------
'variabile contenente il recordset del secondo Dettaglio
Dim rstDett2 As Recordset
'variabile contenente l'istruzione sql
Dim stringaSql2 As String
'mi creo la query che mi restituisce il dettaglio della fattura
stringaSql2 = "SELECT qualcosa FROM daQualcos'altro;"
'mi prendo il recordset
Set rstDett2 = CurrentDb.OpenRecordset(stringaSql2)
'controllo i dati
rstDett2.MoveLast
rstDett2.MoveFirst
'cerco la stringa "Elenco2"
oApp.Selection.Find.ClearFormatting
With oApp.Selection.Find
    .Text = "Elenco2"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
oApp.Selection.Find.Execute
'inserisco la tabella con X colonne, intestazione Y righe
oApp.ActiveDocument.Tables.Add Range:=oApp.Selection.Range,
NumRows:=rstDett2.RecordCount, NumColumns:=2
'tabella senza griglia
oApp.Selection.Tables(1).Borders.Enable = False
'scrivo il dettaglio della fattura
Do While Not rstDett2.EOF
    With oApp.Selection
        .TypeText Text:=rstDett2(0)
        .MoveRight Unit:=wdCell
        .TypeText Text:=rstDett2(1)
        .MoveRight Unit:=wdCell
       End With
    rstDett2.MoveNext
Loop
'----------
Ciao.