Condividi tramite

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-01-26T21:32:00+00:00

    Grazie Vladimiro Leone per l'interessamento.

    Ho seguito i tuoi suggerimenti testando il codice che hai postato, però purtroppo non va come a me serve.Primo perché non compila i segnalibri e poi perché dopo chiuso il database, alla sua riapertura mi apre il file di Word ridotto a icona, non in primo piano.

    Tempo fa avevo visto qualcosa del genere in un altro quesito postato da altro utente e Sergio Peruz, moderatore volontario, aveva risposto postando una private sub per l'apertura del documento e un listato di codice che doveva essere inserito in un modulo standard che serviva per portare in primo piano il documento forzando le API.

    Navigando un po' sono riuscito a trovare quel quesito, ho ripreso i due listati, però siccome il modulo standard (che io ho nomimato Activate Word) va eseguito prima della sub e richiamato con il comando ActivateWord, siccome io pur districandomi in qualche modo non ho quelle conoscenze necessarie per potermi ancora muovere comodamente in VBA, non so come fare per richiamare quel modulo.

    Chissà se tu stesso o qualche altro o magari Sergio Peruz stesso (chissà se si fa una navigata e si imbatte in questa discussione) potete essermi d'aiuto per risolvere il mio problema.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2019-01-24T21:16:45+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.

    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

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  3. Anonimo
    2019-01-24T20:22:15+00:00

    Grazie Francesca F per la risposta e per la dritta.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2019-01-24T13:45:25+00:00

    Ciao,

    tu dici:

    attinti dalla schermata della maschera di Access in quel momento aperta

    le mie esperienze Access-Word sono riferite alla stampa unione (ex mail-merge) che però implica che i dati siano salvati in una tabella.

    Mimmo 

    P.s. Dai un'occhiata al link :

    https://support.office.com/it-it/article/Usare-la-stampa-unione-per-inviare-dati-a-Word-053cc639-fe30-4d3a-943d-0bee0892f16a

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2019-01-24T06:59:31+00:00

    Ciao Snowboard2!

    Per questa tua esigenza, che include la modifica del codice e Access, ti chiedo di contattare direttamente i nostri disponibili colleghi di MSDN. Si tratta di una Community gemella relativa alle esigenze di programmazione. 

    Lascio aperto il thread in caso moderatori volontari vogliano intervenire. 

    Rimaniamo a tua disposizione. 

    Saluti, 

    Francesca

    La risposta è stata utile?

    0 commenti Nessun commento