Buonasera a tutti.
Ho un problema nell'apertura di un modulo Word da un pulsante di una maschera di Access 2016.
Mi spiego meglio: Ho creato un database con Access 2016 in cui c'è una maschera che contiene dei pulsanti che servono per aprire determinati modelli di Word da me creati con dei bookmarks. Praticamente al click del pulsante si dovrebbe aprire in primo
piano il determinato modello di Word con i Bookmarks compilati con i campi "Cognome", "Nome" e "Data di nascita" attinti dalla schermata della maschera di Access in quel momento aperta. Complilando l'evento "su click" nelle proprietà dello specifico bottone
con il codice che di seguito posterò, ottengo si l'apertura in primo piano dello specifico modello di Word, ma i Bookmarks sono vuoti in quanto non so come creare i riferimenti ai campi nel codice. Potreste cortesemente aiutarrmi su come devo creare il codice
idoneo al caso?
Il codice da me usato è il seguente:
Dim wshshell As Object
Set wshshell = CreateObject("wscript.shell")
wshshell.Run """C:\Percorso\Nome_file"""
Rimanendo in attesa di suggerimenti, ringrazio anticipatamente.
Ciao,
se vuoi approfondire, ti consiglio di scaricare al seguente link:
http://www.donkarl.com/it/ -
Automazione Access-Word Marco Pizzamiglio
Io ti posso dare una dritta con un piccolo esempio con tanto di formattazione solo per il controllo "Cognome", l'importante è mettere il tuo file (modulo)
di Word nella stessa cartella dove risiede il database in modo da non dover indicare il percorso.
L'unica cosa da modificare è il nome del file di Word che ho chiamato "TuoFileWord" e il nome del tuo Bookmarks che ho chiamato TuoBookmarks:
Dim Wrd As Object
Dim Doc As Object
Dim Modello As String
Dim Record As String
Dim ReplSel As Boolean
Modello = CurrentDb.Name
Modello = Left(Modello, Len(Modello) - Len(Dir(Modello))) & "TuoFileWord.dot"
On Error Resume Next
Set Wrd = GetObject(, "Word.Application")
If Err.Number = 429 Then
Set Wrd = CreateObject("Word.Application")
End If
On Error GoTo 0
Wrd.Visible = True
Wrd.Activate
ReplSel = Wrd.Options.ReplaceSelection
Wrd.Options.ReplaceSelection = True
Set Doc = Wrd.Documents.Add(Modello)
Doc.Activate
'selezione del punto di inserimento
Doc.Bookmarks("TuoBookmarks").Select
'impostazione delle tabulazioni:
With Wrd.Selection.Paragraphs.TabStops
.Add Wrd.Application.CentimetersToPoints(7.6), 1
End With
'apertura del recordset
Record = Me!Cognome
Wrd.Selection.TypeText Record & vbCrLf 'scrivi la riga
'spaziatura tra la riga e il testo
Wrd.Selection.TypeText vbCrLf
'aggiungi una doppia linea orizzontale tra i dati e il totale
Wrd.Selection.Paragraphs(1).Borders(1).LineStyle = 7
Wrd.Selection.Paragraphs(1).Borders.DistanceFromTop = 8
Wrd.Options.ReplaceSelection = ReplSel
Wrd.Application.WordBasic.MsgBox "Esportazione terminata", "Esportazione dati da Access"
Set Doc = Nothing
Set Wrd = Nothing
Vladimiro