Compilare tabella Word con dati provenienti d access usando segnalibri

di il
2 risposte

Compilare tabella Word con dati provenienti d access usando segnalibri

Salve,
Sto sbattendo la testa con un problema access.

Nello specifico voglio utilizzare compilare delle tabelle word inserendo al loro interno, dopo aver selezionato la riga, i dati anagrafici di alcuni soggetti presenti su un database access. Preciso che i documenti word non sono sempre gli stessi ma hanno in comune, nel corpo della lettera, delle tabelle pronte ad ospitare dei dati anagrafici con colonne ogni volta diverse in base ad alcune esigenze di modulistica. 

Voglio utilizzare il metodo dei segnalibri che riconosca il file word in quel momento, quindi senza dover vincolarmi ad uno specifico file o indicando i percorsi, che incolli il testo dove ho già preimpostato il segnalibro word corrispondente.

'Definisco le variabili per verificare se Word è aperto
Dim aWord As Object

'ottiene il riferimento all'istanza di Word già in esecuzione
On Error Resume Next
Set aWord = GetObject(, "Word.Application")

If aWord Is Nothing Then 'controlla se word è chiuso
MsgBox "Nessun documento Word aperto."
End If

If Not aWord Is Nothing Then ' se word è aperto allora...
If aWord.WindowState = wdWindowStateMinimize Then ' Ingrandisce word se è ridotto ad icona e attiva il focus
   aWord.WindowState = WindowStateMaximize
   aWord.Visible = True
   aWord.Activate

' compila il segnalibro nome
 aWord.Bookmarks("Nome").Select
 aWord.selection.typetext Me.Nome
End If
End If
End Sub

2 Risposte

  • Re: Compilare tabella Word con dati provenienti d access usando segnalibri

    Il tuo codice è sbagliato, perchè non si lavora su WORD ma sull'Oggetto Document puntato da Word, quindi devi recuperare l'istanza, ma devi accedere al Document corretto:

    With aWord 
    	' MEMORIZZA LO STATO DI [RIMPIAZZA SELEZIONE] PER
    	' RIPRISTINARLO ALL'USCITA IN QUANTO ORA LO FORZIAMO=TRUE
        ReplSel = .Options.ReplaceSelection
        .Options.ReplaceSelection = True
        Set mobjWordDoc = .Documents.Add(Me.cboFullPathTemplate.Value)
        'mobjWordDoc.Activate
    End With

    Io avevo fatto una cosa simile, forse quì trovi un demo:

    https://1drv.ms/u/s!Are2sGzrs4WCqgLFNWJVp-bNxggq?e=drGmXK

    Per sicurezza verifica che il Bookmark esista, fai un Debug passo passo per capire se li trova:

    If mobjWordDoc.Bookmarks.Exists(strBookmark) Then
       mobjWordDoc.Bookmarks(strBookmark).Select
       mobjWordDoc.Selection.TypeText Text:=Me.Nome
    End If
  • Re: Compilare tabella Word con dati provenienti d access usando segnalibri

    30/11/2023 - Rosco79 ha scritto:


    Preciso che i documenti word non sono sempre gli stessi ma hanno in comune, nel corpo della lettera, delle tabelle pronte ad ospitare dei dati anagrafici con colonne ogni volta diverse in base ad alcune esigenze di modulistica. 

    Potresti volgarmente copiare/incollare il recordset di valori che ti interessa da tabella/query di Access in Word.

    Perchè hai mostrato quel codice VBA? Funziona? Vorrei solo farti notare che hai usato 2 If che dicono la stessa cosa contrapposta, per tanto puoi usare una sola If e vincolare Then e Else direttamente.

Devi accedere o registrarti per scrivere nel forum
2 risposte