Condividi tramite

Compilare file word da selezione casella combinata

Anonimo
2021-12-05T07:52:43+00:00

Ciao a tutti,

sto cercando di creare un file con access al fine di poter inviare dei dati in diversi file word in base alla selezione del file effettuata nella casella combinata COMPILA.

Ho provato a creare diversi file word, con i diversi segnalibri.

Premendo il comando COMPILA, dopo la selezione del nome del file presente nella casella combinata, dovrebbe aprirsi il relativo file word ed inserire automaticamente i diversi valori nei segnalibri.

Ho provato a visionare diversi codici nel forum, ma resto in grande difficoltà.

Provo a postare il file al fine di poter chiedere un vostro prezioso aiuto per ottenere il risultato desiderato.

Grazie in anticipo a tutti Voi per la Vostra professionalità

Microsoft 365 e Office | Accesso | 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

17 risposte

Ordina per: Più utili
  1. Anonimo
    2021-12-06T08:28:47+00:00

    Intanto dire che dovresti cambiare la struttura del database tipo quella sotto

    in quanto la tabella tblPratiche dovrebbe essere normalizzata per non ripetere campi come Operatore1,Operatore2, ecc... Soggetto1,Soggetto2, ecc..., risparmiando spazio e rendendoli riutilizzabili per altre Pratiche, e i file docx dovrebbero essere modelli associabili alle Pratiche.

    A questo punto quando fai click sul pulsante il codice aprirà il file modello relativo alla Pratica e andrà a compilare i relativi segnaposto scorrendo i dati, relativi alla Pratica corrente, che traverà nella tblPraticaDati.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2021-12-06T05:31:44+00:00

    ciao daniele,

    grazie in anticipo per la disponibilità.

    A prima vista, mi confermi che dovremmo rivedere il percorso del filepath che deve cambiare in base al valore della combobox, che indica appunto il file word con i segnalibri da popolare?

    Provo a ridescrivere l'obiettivo che vorrei raggiungere.

    Nella maschera di access ho creato delle caselle di testo ed una casella combinata con origine il nome dei file word, dove all'interno sono presenti dei segnalibri, diversi oppure uguali tra i diversi files word.

    Il valore di queste caselle di controllo deve essere riportato nel file word selezionato all'interno della casella combinata attraverso i segnalibri

    Appena riesco provo a lavorarci

    Grazie ancora.

    Buona giornata

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2021-12-05T10:41:51+00:00

    Ciao Giuseppe,

    qui Daniele, bentrovato nella community Microsoft,

    Puoi farlo con VBA, crea un modulo con due funzioni, una per aprire il file word, un'altra per cambiare il testo ad un segnalibro.

    Prima però per aprire un file word devi inserire i Microsoft Word x.0 Object Library tra i riferimenti del codice VBA

    Per aprire un file word puoi usare la seguente funzione:

    Public Function OpenWord() As Word.Document
        Dim wrdApp As Word.Application
        Dim wrdDoc As Word.Document
        Dim filepath As String
    
        Set wrdApp = CreateObject("Word.Application")
    
        c = CurrentProject.Path
        filepath = c & "\File Alfa Codice 001.docx"
        wrdApp.Visible = True
        Set OpenWord = wrdApp.Documents.Open(filepath)
    End Function
    

    per cambiare il testo del segnalibro

    Public Sub ChangeBkmark(ByRef wrdDoc As Word.Document, bkmName As String, newText As String)
    
        Dim bkmRng As Range 
    
         If wrdDoc.Bookmarks.Exists(bkmName) Then 
    
            Set bkmRng = wrdDoc.Bookmarks(bkmName).Range 
    
            bkmRng.Text = newText 
    
            bkmRng.End = bkmRng.Start + Len(newText) 
    
            wrdDoc.Bookmarks.Add bkmName, bkmRng 
    
        Else 
    
            MsgBox ("Bookmark " & bkmName & " non esiste") 
    
        End If 
    
     End Sub 
    

    quindi nel comando compila, che sembra essere il tasto 43 puoi fare questo:

    Private Sub Comando43_Click()
        Dim wrdDoc As Word.Document
        Set wrdDoc = Modulo1.OpenWord
        
        Modulo1.ChangeBkmark wrdDoc, "bkOperatore1", Me.Operatore1.Value
        Modulo1.ChangeBkmark wrdDoc, "bkOperatore2", Me.Operatore2.Value
        '...
        Modulo1.ChangeBkmark wrdDoc, "bkOperatoreN", Me.OperatoreN.Value
    
    End Sub
    

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2021-12-05T08:57:42+00:00

    ciao,

    grazie in anticipo,

    perdonami ho inserito un filezip, contenente i files

    Grazie ancora

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2021-12-05T08:47:18+00:00
    • Intanto dovremmo avere anche almeno un file di Word che hai creato per inserirvi i dati
    • inoltre la tabella tbl_pratiche presenta una struttura che fa presumere una cattiva gestione del database vedendo i campi
      • Operatore1, Operatore2, ecc...
      • Soggetto1, Soggetto2, eccc..

    La risposta è stata utile?

    0 commenti Nessun commento