Autocompilazione dei bookmarks di word da una maschera Access 2016

Anonimo
2019-01-21T21:52:48+00:00

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.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

36 risposte

Ordina per: Più utili
  1. Anonimo
    2019-03-17T15:55:21+00:00

    Ciao Vladimiro,

    scusami per il ritardo nella risposta, ma dovendo postare il DB completo, e non potendo postare il mio per la presenza di dati sensibili, ho dovuto cercare qualcosa che avesse le stesse caratteristiche del mio con gli stessi passaggi da eseguire. Finalmente sono riuscito a quagliare un DB che si riferisce a un ambulatorio medico, dove ci sono un numero di prestazioni equivalenti ai miei files di Word.

    In questo DB tu apri il menu iniziale e da lì inserisci o cerchi (in base al Codice Fiscale) una paziente. L'inserimento consiste nell'inserire tutti i dati anagrafici, terminati i quali, cliccando sul pulsante "OK" chiudi la maschera d'inserimento e apri quella della "Lista Pazienti", nella quale alla fine di ogni riga ti troverai il pulsante "Scheda", cliccando sul quale ti si aprirà la maschera "Scheda Paziente" in cui potrai inserire la data e il tipo di prestazione.

    Nell'angolo in basso a destra di questa maschera troverai il riquadro dei referti che contiene otto pulsanti, ognuno dei quali corrisponde a un file di Word che è un modello di referto (è un modello di Word con i Bookmarks Cognome, Nome e Data di nascita, che sono collegati ai corrispondenti campi della maschera "Scheda Paziente") che a compilazione ultimata andrai a salvare nella cartella "Referti" (che dovrai creare) come documento Word.

    Ora ti renderai conto facilmente, aprendo la maschera "Scheda Paziente" in struttura, che al click degli otto pulsanti, i primi tre (Visita Ostetrica, Visita Ginecologica, Ecografia Pelvica), aprono regolarmente il rispettivo file di Word in primo piano, i rimanenti cinque, pur essendo lo stesso il codice, aprono il rispettivo file di Word ma ridotto a icona sulla barra delle applicazioni.

    A questo punto arrivato non riesco più a spiegarmi nulla. E come ti dicevo c'è da diventare scemi.

    Questo è il link del DB, a te l'oneroso compito di risolvere l'arcano.

    Un salutone.

    Ciao,

    prima cosa credo sia opportuno creare un Sub in modo da non ripetere lo stesso codice per ogni pulsante:

    Sub ApriFile(NomeFile As String)

    Dim appword As Object 'Word.Application

    Dim doc     As Object 'Word.Document

    Dim fPath   As String

    Dim FName   As String

    On Error Resume Next

    Set appword = GetObject(, "Word.Application")

    Error.Clear

    If Err.Number <> 0 Then

         Set appword = CreateObject("Word.Application")

    End If

    appword.Visible = True

    fPath = "C:\Gestione\Moduli"

    FName = NomeFile

    With appword

         Set doc = .Documents.Open(fPath & FName)

         '.Activate

         ActivateWord

    End With

    With doc

         .Bookmarks("Cognome").range.insertAfter Me.Cognome

         .Bookmarks("Nome").range.insertAfter Me.Nome

         .Bookmarks("Data_di_nascita").range.insertAfter Me.Data_di_nascita

    End With

    Set doc = Nothing

    Set appword = Nothing

    End Sub

    Private Sub Comando23_Click()

    Call ApriFile("Visita Ostetrica.dotx")

    End Sub

    Private Sub Comando24_Click()

    Call ApriFile("Visita Ginecologica.dotx")

    End Sub

    Private Sub Comando25_Click()

    Call ApriFile("Ecografia 5-10 Sett..dotx")

    End Sub

    Private Sub Comando26_Click()

    Call ApriFile("Ecografia I° Trimestre.dotx")

    End Sub

    Private Sub Comando27_Click()

    Call ApriFile("Ecografia Pelvica.dotx")

    End Sub

    Private Sub Comando28_Click()

    Call ApriFile("Ecografia Morfologica.dotx")

    End Sub

    Private Sub Comando29_Click()

    Call ApriFile("Ecografia II° Trimestre.dotx")

    End Sub

    Private Sub Comando30_Click()

    Call ApriFile("Ecografia III° Trimestre.dotx")

    End Sub

    Ho provato ed anche a me succede la stessa cosa.

    Non so che dirti :-(

    Magari prova ad usare il file di Word "Visita ostetrica" come campione (visto che insieme agli altri e due file si apre sempre) lasciando attivi solo i segnalibri inseriti e da qui crearti tutti i restanti che non si aprono aggiungendo naturalmente quello che serve, salvandoli naturalmente tutti con la stessa estensione.

    Mi dispiace, speriamo che qualcun altro riesca a trovare qualche altra soluzione al problema.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento