Newsgroup: it.comp.appl.access
Titolo: Gestione documenti in word

Sto sviluppando una applicazione che implementa una corposa gestione di 
modelli di documenti in word con compilazione e creazione degli stessi. 
Questi documenti vengono compilati automaticamente con dati prelevati dalle 
tabelle del mio database. Vi è un sistema oltre alla stampa unione e la 
gestione dei segnalibri per gestire la compilazione dei modelli in 
automatico? Premetto che devo mettere l'utente in grado di potersi creare 
modelli e inserire i campi delle tabelle nel database. Dove posso trovare 
esempi o informazioni al riguardo?
Anticipatamente ringrazio 

 esempi o informazioni al riguardo?
Crearsi i modelli non è un problema, potresti fornire un lenco dei nomi di
campi effettivamente utilizzabili dalle persone che così possono creare
facilmente documenti autocompilabili.
Se cerchi in giro sui moduli (fields) di word dovresti trovare sufficienti
info. 
Io li uso spesso e mi trovo bene.
Ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Davvero interessante, ma mi è poco chiaro, potresti indicarmi dove posso 
trovare esempi in rete? Vorrei approfondire l'argomento.
Grazie ancora
"Diego Lotti" <diego...@NOSPAMiol.it> ha scritto nel messaggio 
news:clj3rh$hpi$1...@news.newsland.it...



Se l'utente deve essere in grado di crearsi i documenti, posso solo 
suggerirti di fargli un bel corso sulla stampa unione.
L'unico vincolo che potresti impostare è la scelta dei dati per il modello, 
la creazione del documento (modello) e l'associazione della fonte dati; da 
questo punto in poi non è difficile (per un utente formato) inserire i campi 
nel suo modello...
Ciao.
-- 
Sergio MAZZA 

 Grazie ancora
Ti posto questa sub che prende in input un file di word (path completo) e
il nome di una tabella del tuo database.
Il file viene aperto e vengono controllati tutti i campi modulo (fields)
che vengono riempito con i valori presenti nella tabella del database,
quando il nome del campo word è uguale a quello della colonna della
tabella.
Provalo.
Ciao
------------------------------------------------------------------------
Public Sub ApriFileModuli(stFileName As String, stTabella As String)
 
    Dim objWord As Word.Application
    Dim objDoc As Word.Document
    Dim aField As Word.FormField
    Dim rsDati As ADODB.Recordset
 
    ' Attiva la clessidra.
    DoCmd.Hourglass True
 
    Set rsDati = New ADODB.Recordset
 
    If stTabella = "" Then
        MsgBox "Errore sui parametri in ingresso. Non è presente la
sorgente dati!", vbCritical, "Errore grave"
        Exit Sub
    End If
 
    rsDati.Open "SELECT * FROM " & stTabella, CurrentProject.Connection,
adOpenForwardOnly, adLockReadOnly
 
    If rsDati.BOF And rsDati.EOF Then
        MsgBox "Non sono stati trovati i dati corrispondenti!",
vbCritical, "Errore grave"
        rsDati.Close
        Set rsDati = Nothing
        Exit Sub
    End If
 
    On Error Resume Next
    ' Verifica se Word è già aperto.
    Set objWord = GetObject(, "Word.Application")
 
    ' Se vero, Word non è aperto.
    If objWord Is Nothing Then
        ' Crea una nuova istanza dell'applicazione Word.
        Set objWord = New Word.Application
        ' Se vero MS Word non è installato.
        If objWord Is Nothing Then
            MsgBox "MS Word non è installato"
        End If
    End If
 
    On Error GoTo gest_errori
 
    ' Apre un nuovo documento Word basato sul modello "Normal.dot".
    objWord.Documents.Open (stFileName)
    Set objDoc = objWord.ActiveDocument
 
    ' Attiva Word
    'objWord.Activate
    objWord.Visible = True
 
    On Error Resume Next 'salta eventuali campi inesistenti
    For Each aField In objDoc.FormFields
        ' vale solo se tutti i campi in word hanno una colonna omonima
nella tabella, altrimenti solleva un errore
        aField.result = rsDati.Fields(aField.name)
    Next aField
    objWord.ActiveDocument.Fields.Update
    objWord.Documents.Save
    ' Rilascia la variabile oggetto.
    DoCmd.Hourglass False
    Set objWord = Nothing
 
    Exit Sub
gest_errori:
    MsgBox "Si è verificato un errore nella stampa del mandato automatico.
E' possibile che il nome dei campi sia errato o che ci siano campi nel
modulo non presenti nella tabella origine!", vbCritical, "Errore di
creazione"
    objWord.Documents.Save
    DoCmd.Hourglass False
    Set objWord = Nothing
    Set objDoc = Nothing
End Sub
---------------------------------------------------------------------------
