Newsgroup: it.comp.appl.access
Titolo: Generazione Automatica File .doc

Salve,
ho un domanda un pò complessa (almeno per me)
Ho una maschera che mi elenca una serie di offerte con i seguenti campi:
nr_offerta - beneficiario - anno - link - accettata
vorrei che in base all'anno e al numero di offerta (un contatore
progressivo) il db mi generasse , in base ad un master chiamato
master_offerta.doc
il mio file word con nome: off[numero_offerta][anno].doc e che nel campo
link mi scrivesse il percoso del file (es: L:\offerte\nomegenerato.doc.
....... voi direte .... serve altro?!?!?!  ;-)
E' possibile farlo?!?!
Grazie per il vostro aiuto competente.

 ha scritto nel messaggio
news:clj3ug$cuv$1...@grillo.cs.interbusiness.it...

________________________________-
io ho fatto qualcosa di simile da excel, ma penso che sia tutto uguale.
Praticamente mi vado a scrivere in un file txt le informazioni che mi
servono,
e nel documento (magari è meglio Master_offerta.dot) su evento
Document_New()
andrai a scrivere i valori ricavati dal file txt su dei segnalibri che avrai
preventivamente creato.
Ad esempio potrai crearti il segnalibro PercorsoFile e nell'evento su
indicato assegnerai a
quel segnalibro il valore del file txt.
ciao
Riccardo

 ha scritto nel messaggio
news:clkurk$d4u$1...@news.panservice.it...

scusami ma sono un pò tarallo,
non ho capito;
io creo un file master.dot e lo metto nella directory /offerte
........ poi????

 ........ poi????
_________________________________--
cerco di essere più chiaro:
1) ti crei un file txt con cio che ti serve (ti stampi il contenuto che ti
serve dalla tua maschera
di access.... nr. progressivo, link ecc.)
2) per aprire il file word da access scrivi  (devi inserire nei riferimenti
la libreria di Word)
Dim objDoc As Word.Document
Dim jj As Long
Set objDoc = CreateObject("Word.Document")
objDoc.Application.Documents.Add Template:="\master.dot", NewTemplate:=False
objDoc.Application.Visible = True
objDoc.Application.ActiveDocument.SaveAs Filename:="\nome.doc"        'per
salvare il file con un nome specificato
objDoc.Application.ActiveDocument.PrintOut  'per stampare il documento word
objDoc.Application.ActiveWindow.Close       'chiude la finestra
objDoc.Application.Visible = False          'nasconde word
'io ho inserito un'attesa perche' se chiudo subito word, non mi stampa il
documento
    For jj = 1 To 1500
        DoEvents  ' per allungare l'attesa nel TEST
    Next
objDoc.Application.Quit        'per chiudere word.
3) invece nel file master.dot dovrai scrivere:
Private Sub Document_New()
Dim MyChar
Dim TextLine
Dim var(2)    'ma nel tuo caso possono essere di più
Dim import(2)
Dim i As Integer
import(0) = "link"    'il nome del segnalibro dovrà essere link
import(1) = "nr_progr"        'il nome del segnalibro dovrà essere nr_progr
Open "c:\nomefile.txt" For Input As #1    ' Apre il file per l'input.
i = 0
Do While Not EOF(1) ' Ripete fino alla fine del file.
    Line Input #1, TextLine ' Assegna la riga a una variabile.
    var(i) = TextLine
        With ActiveDocument.Bookmarks(import(i))
            ActiveDocument.Range(.Start, .End).Text = var(i)
        End With
    i = i + 1
Loop
Close #1    ' Chiude il file.
End Sub
Così facendo, se nel file txt hai scritto alla prima riga il percorso del
"link" ed alla seconda il "nr_progr"
quando apri word, viene aperto il file txt, viene letta la prima riga,
assegnato il valore alla matrice var
e poi viene assegnato al segnalibro "link" il valore della variabile
var..... e così via per tutte le righe
del tuo file.
Naturalmente per far funzionare quest'ultima parte dovrai crearti, nei punti
del documento da te scelti,
dei segnalibri con lo stesso nome indicato nel codice.
spero di esserti stato utile.
ciao
Riccardo


Trasforma il file .doc in .dot (apri word e File - Salva con nome - tipo 
documento "modello").
(per esempio) in un pulsante di comando inserisci:
'-------------
On error goto Orrore
Dim objWordDoc As Word.Document
Dim nomeFiletmp as String
nomeFiletmp = "L:\offerte\off" & Me![numero_offerta] & Me!anno & ".doc"
Set objWordDoc = CreateObject("Word.Document")
If Dir(nomeFiletmp) = "" then '<-- il file non esiste, lo crea
    objWordDoc.Application.Documents.Add "master_offerta.dot", False
    objWordDoc.SaveAs nomeFiletmp
else '<-- esiste e lo apre
    'objWordDoc.Application.Documents.Open nomeFiletmp
end if
objWordDoc.Application.Visible = True
objWordDoc.Application.Activate
exit sub
Orrore:
    set objWordDoc = nothing
    msgbox err.number & " " & Application.accesserror(err.number)
'-------------
Prima devi inserire i riferimenti alla libreria Microsoft Word (Strumenti - 
Riferimenti)...
Ciao.
-- 
Sergio MAZZA 

 > ho un domanda un pň complessa (almeno per me)

ok funge ma con un problema: mi crea il file ma completamente bianco...
mentre il file master.dot non lo č...
questo č il codice:
On Error GoTo Orrore
Dim objWordDoc As Word.Document
Dim nomeFiletmp As String
nomeFiletmp = "L:\commerciale\offerte\off" & Me.nr_offerta & Me.anno &
".doc"
Set objWordDoc = CreateObject("Word.Document")
If Dir(nomeFiletmp) = "" Then '<-- il file non esiste, lo crea
    objWordDoc.Application.Documents.Add
"L:\commerciale\offerte\master_offerta.dot", False
    objWordDoc.SaveAs nomeFiletmp
Else '<-- esiste e lo apre
    objWordDoc.Application.Documents.Open nomeFiletmp
End If
objWordDoc.Application.Visible = True
objWordDoc.Application.Activate
Exit Sub
Orrore:
    Set objWordDoc = Nothing
    MsgBox Err.Number & " " & Application.AccessError(Err.Number)
dove sbaglio???

 dove sbaglio???
Ok, cambiamo il riferimento da Word.Document a Word.Application e di 
conseguenza anche l'oggetto oltre a salvare il modello nella cartella 
predefinita (dei modelli) di Word, utilizzando cosě solo il nome del file 
senza includere il percorso:
'----------------
On Error GoTo Orrore
Dim objApp As Word.Application
Dim nomeFiletmp As String
nomeFiletmp = "L:\commerciale\offerte\off" & Me.nr_offerta & Me.anno & 
".doc"
Set objApp = CreateObject("Word.Application")
If Dir(nomeFiletmp) = "" Then '<-- il file non esiste, lo crea
'objApp.Documents.Add "L:\commerciale\offerte\master_offerta.dot", False
   objApp.Documents.Add "master_offerta.dot" '<-- se salvi il modello nella 
cart. predef.
   objApp.ActiveDocument.SaveAs nomeFiletmp
Else '<-- esiste e lo apre
   objApp.Documents.Open nomeFiletmp
End If
objApp.Visible = True
objApp.Activate
Exit Sub
Orrore:
   Set objApp = Nothing
   MsgBox Err.Number & " " & Application.AccessError(Err.Number)
'----------------
Ciao.
-- 
Sergio MAZZA