Newsgroup: it.comp.appl.access
Titolo: Documento word collegato

Vorrei inserire in un campo di una tabella il collegamento ad un
documento di word, come posso fare?
Questo codice mi da errore:
Dim objOle As Object
 
objOle.Class = "Word.Document"
objOle.OLETypeAllowed = acOLELinked
objOle.SourceDoc = "C:\Dir\" & rst!FILE & ".doc"
objOle.Action = acOLECreateLink
rst.Edit 
rst!OggOle = objOle
rst.Update
Ciao BB

 ha scritto nel messaggio
news:8fv2nv8a7plrt7kn9...@4ax.com...

Io ti consiglio di memorizzare in un campo di tipo Testo solo il nome del
file; se il nome della casella di testo associata al campo che contiene il
nome del documento si chiama Pippo, quando devi aprir quel documento word
genera il seguente codice VBA:
Dim appWord As New Word.Application
appWord.Documents.Open "C:\Dir\" & Me!Pippo & ".doc"
appWord.Visible = True
Se invece nel campo di tipo Testo associato alla casella Pippo memorizzi il
path COMPLETO del documento Word da aprire, il codice VBA si semplifica in:
Dim appWord As New Word.Application
appWord.Documents.Open Me!Pippo
appWord.Visible = True
Naturalmente ai riferimenti del tuo database dovrai aggiungere quello
relativo alla libreria Microsoft Word X.X, dove X.X sarà uguale a 8.0 se usi
Office 97, 9.0 se usi Office 2000 ecc.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------



So che per quanto possibile è bene evitare di mettere campi ole
all'interno di una tabella... ma in questo caso lo dovuto fare... 
Ho scoperto che non è possibile assegnare un oggetto ole direttamente
al campo in tabella, quindi sono passato per una maschera:
Dim intI As Long
Dim frmDoc As Form
Dim strFile As String
DoCmd.OpenForm "DocWod"
strDir = "C:\Dir\"
Set frmDoc = Forms!DocWod
For intI = 1 To frmDoc.RecordsetClone.RecordCount
    strFile = strDir & frmDoc!FILE & ".doc"
    frmDoc!OggOle.SourceDoc = strFile
    frmDoc!OggOle.Action = acOLECreateEmbed
    DoCmd.GoToRecord acDataForm, "DocWod", acNext
Next intI
Ciao BB

Office 97, 9.0 se usi Office 2000 ecc.
Sono d'accordo con te, ma in questo caso devo stampare in file
separati in formato pdf documenti word con una intestazione presente
nel record del db che fa riferimento al file. Per questo ho scelto la
soluzione OLE.
Ciao BB

BiBi ha scritto:

Puoi usare un campo di tipo "collegamento ipertestuale" e farlo puntare al
documento word.
Per l'utilizzo e le proprietą di questo tipo di campi leggi sulla guida.
Ciao.
Namor
-- 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Namor
Mi serve poi usare il campo OLE nei report... sai come si puņ
ridimensionare la cornice in base all'oggetto OLE?
Ciao BB

 Ciao BB
No, non l'ho mai fatto.
Ma... qual è il problema che sta alla base di tutto ciò?
Cos'è che devi ottenere e a partire da cosa, che magari c'è qualche altro
modo più semplice per farlo che tu non hai considerato?


Namor
In una tabella ho numero, data pubblicazione, oggetto ed il percorso
(dove risiede su disco fisso) del documento. Ho bisogno di generare,
per ogni documento, un file pdf che abbia nell'intestazione le
informazioni presenti nella tabella ed il corpo del documento presente
nel file salvato su disco. Ho pensato anche alla stampa unione da Word
ma mi genererebbe un unico file per tutti i documenti, mentre da
Access mi posso costruire il report come voglio e con una procedura
creare un pdf per ogni documento, ho provato a cambiare il
collegamento dal report (sempre con un oggetto OLE) ma non c'č stato
verso...
Ciao BB

 Ciao BB
Con l'automazione puoi scrivere una procedura che da access fa aprire
word, carica uno per uno tutti i documenti e inserisce nell'intestazione
di ciascuno i dati presi dalla tabella. Così ottieni un solo documento per
ogni riga della tabella.
Se vuoi provare questo metodo, dall'editor visual basic di access devi
abilitare in (Strumenti - Riferimenti) il riferimento alla libreria
"Microsoft Word", poi vai sul visualizzatore oggetti e dai un'occhiata ai
metodi e proprietà di quella libreria.
Ti servirà un oggetto di tipo Word.application che userai per aprire i
file tramite un altro oggetto tipo Word.document.
