Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Inserire dati in un documento Word tramite VBA

79 views
Skip to first unread message

Pede

unread,
Aug 5, 1998, 3:00:00 AM8/5/98
to
Non riesco ad immettere delle stringhe nei segnaposti sulle lettere modello
tramite il codice scritto in una maschera in Access!
Ci sono varie soluzioni:
- utilizzare i comandi WORD.BASIC (non funziona?)
-utilizzare un oggetto OLE oppure aprire direttamento Word

Ciao
Pede :)


Massimo Cesareo

unread,
Aug 6, 1998, 3:00:00 AM8/6/98
to
Da qualche parte Re:OT consulenti ferie e commercialisti si era parlato di
una cosa del genere, se non lo trovi dimmelo (domani o dopo il 20 :-))) che
te lo posto privatamente

Ciao
Massimo

______________________________
> antispam: rimuovere la K <

Fausto Casini

unread,
Aug 10, 1998, 3:00:00 AM8/10/98
to Pede

Pede wrote:

Ciao, anche io ci ho perso un po di tempo appresso anche perche la
documentazione in merito e' un po scarsina e gli esempi non mi sembra che
funzionino a dovere, comunque questa e' la serie di stringhe che io utilizzo
per passare il contenuto dei campi di una maschera ad un documento di word che
scelgo di volta in volta:

' --- CHIEDO CONFERMA DELL'APERTURA DI WORD

Dim prompt, titolo As String
prompt = "AVVIO WINWORD E TRASFERISCO IL DOCUMENTO?"
titolo = "ATTENZIONE"
If MsgBox(prompt, 52, titolo) = 7 Then Exit Sub


Dim strFinalDoc As String
Dim strFileOpenCmd As String
Dim lngChannel As Long
Dim lngReturnValue As Long

Dim strFilter As String
Dim strInputFileName As String

'**** SCELGO IL MODELLO DI FILE DA APRIRE ****

strFilter = ahtAddFilterItem(strFilter, "File di WINWORD (*.doc)", "*.doC")
strInputFileName = ahtCommonFileOpenSave(Filter:=strFilter, OpenFile:=True, _
DialogTitle:="Seleziona il file di layout da aprire...", _
Flags:=ahtOFN_HIDEREADONLY)

strFinalDoc = strInputFileName


If strFinalDoc = "NOFILE" Then
MsgBox ("oPERAZIONE ANNULLATA")
DoCmd.Close
Exit Sub
End If


'***** ESEGUO WINWORD *****

Const MSTB_MSWORD = 300&

Application.Run "utility.util_StartMSToolbarApp", MSTB_MSWORD


'-- APRO IL CANALE DI COMUNICAZIONE

lngChannel = DDEInitiate("WinWord", "System")

'-- APRO IL DOCUMENTO MASTER

strFileOpenCmd = "[Fileapri """ & strFinalDoc & """]"
DDEExecute lngChannel, strFileOpenCmd

'- SOSTITUISCO IL TITOLO DEL DOCUMENTO

DDEExecute lngChannel, "[modificasostituisci.trova=""" & "<REDATTO>" & """]"

DDEExecute lngChannel, "[inserisci""" & [Redatto] & """]"

DDEExecute lngChannel, "[modificasostituisci.trova=""" & "<VERIFICATO>" &
"""]"
DDEExecute lngChannel, "[inserisci""" & [Verificato] & """]"

DDEExecute lngChannel, "[modificasostituisci.trova=""" & "<APPROVATO>" &
"""]"
DDEExecute lngChannel, "[inserisci""" & [Approvato] & """]"

DDEExecute lngChannel, "[modificasostituisci.trova=""" & "<DESTINATARI>" &
"""]"
DDEExecute lngChannel, "[inserisci""" & [Distribuzione] & """]"

'--MODIFICO I DATI NELL'INTESTAZIONE

DDEExecute lngChannel, "[MOSTRAINTESTAZIONE]"

DDEExecute lngChannel, "[modificasostituisci.trova=""" & "<tipo>" & """]"
DDEExecute lngChannel, "[inserisci""" & [tipo_doc] & """]"

DDEExecute lngChannel, "[modificasostituisci.trova=""" & "<titolo>" & """]"
DDEExecute lngChannel, "[inserisci""" & [Descrizione] & """]"

DDEExecute lngChannel, "[modificasostituisci.trova=""" & "<CODICE>" & """]"
DDEExecute lngChannel, "[inserisci""" & [codice_doc] & """]"

DDEExecute lngChannel, "[modificasostituisci.trova=""" & "<DATA>" & """]"
DDEExecute lngChannel, "[inserisci""" & [data_doc] & """]"

'--CHIUDO L'INTESTAZIONE

DDEExecute lngChannel, "[MOSTRAINTESTAZIONE]"

DDEExecute lngChannel, "[beep][beep][beep]"
DDEExecute lngChannel, "[msgbox """ & "Ricordati di salvare il file con un
altro nome" & """]"

DDETerminateAll

DoCmd.Close
DoCmd.Close A_FORM, "introduzione"

'Chiudo tutto ed esco dal programma
'DoCmd.Quit


Exit Sub
End If

errore:
DDETerminateAll
MsgBox ("si e' verificato un errore")
Exit Sub


End Sub

L'unico problema è che su un computer (uno su 15) questa funzione non lancia
WINWORD, ma per farla funzionare bisogna aprire winword manualmente
........mistero!!!Ciao fammi sapere se hai problemi


0 new messages