Automazione da Access a Word

Anonimo
2024-04-01T15:48:24+00:00

Save a tutti, sono Sandra ed ho il seguente problema..

Ho la necessità di fare in modo che compilando una form su Access, una volta cliccato su un tasto, venga richiamato un modello di word precedentemmente realizzato che viene popolato dai dati inseriti sulla maschera di Access.

HO trovato a questo link una soluzione valida

https://answers.microsoft.com/it-it/msoffice/forum/all/automazione-word-da-access/1c85bb41-20bf-4881-9cfa-1b2ed3887dbf

Tramite questo codice, riesco a fare aprire il modello di word e poi a salvarlo nel formato che desidero.

Il problema è però che vorrei che alcuni campi venissero esportati nel modello di Word solo quando effettivamente compilati e nel caso non siano compilati.. questi non lasciassero spazi vuoti nel modello di word.

Faccio un esempio

Nel modello word ho inserito i segnalibri per due possibili persone. Ma non è detto che siano 2. QUindi nel caso io non compilassi i dati della seconda persona, nel word dovrebbe sparire lo spazio dedicato a questi dati... e quindi il file dovrebbe proseguire conil resto dei dati.

PERSONA 1

ID

Nome e cognome

Generalita

Avvocato di fiducia

PERSONA 2

Nome e cognome

Generalita

Avvocato di fiducia

Avevo realizzato un report che mi permetteva di farlo, trasformando l'etichetta del campo in una casella di testo e inserendo il seguente codice

=IIf(IsNull([ Indagato_2]);Null;" Indagato_2")

E nel report attivavo l'impostazione "riducibile" su si, ma il report è limitato per tutto il testo che devo inserire io e quindi ho cercato su internet e sono arrivata a voi.

Non ho conoscenza di VBA ma a furia di sbatterci la testa sono riuscita a capire come incollare e cosa mmodificare nel codice per adattarlo a me.

Potete aiutarmi nel fare il modo che se non comppilo il campo imputato 2 questo non mi lasci spazi?

Grazie

+++ AGGIORNAMENTO +++

Ho appena scoperto che con i segnalibro non si posso ripetere all'interno di una pagina... io devo inserire in circa 3 pagina dei dati che si devono ripeetere ..

N° fascicolo

Cliente 1

CLiente 2

Avvocato_1

Avvocato_2

ora sono nella confuzione totale. Help!!

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

20 risposte

Ordina per: Più utili
  1. Anonimo
    2024-04-03T17:59:09+00:00

    -------AGGIORNAMENTO ------------

    Ho finalmente capito perchè non funzionava il ciclo FOR Next ... o almeno adesso mi funziona :D. Incollo il codice che adesso i restituisce correttamente ciò che gli chiedo (praticamente un MIRACOLO!!!)

    Private Sub Comando114_Click()

    Call fillwordform

    End Sub

    Private Sub fillwordform()

    Dim appword As Word.Application

    Dim doc As Word.Document

    Dim fPath As String

    Dim FName As String

    Dim ReplSel As Boolean

    Dim i As Integer

    On Error Resume Next

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

    Error.Clear

    If Err.Number <> 0 Then

    Set appword = CreateObject("Word.Application") 
    

    End If

    On Error GoTo 0

    fPath = "C:\415"

    FName = "Avviso_415.dotx"

    appword.Visible = True

    appword.Activate 
    
    ReplSel = appword.Options.ReplaceSelection 
    
    appword.Options.ReplaceSelection = True 
    
    Set doc = appword.Documents.Add(fPath & FName) 
    
    doc.Activate 
    

    For i = 1 To 10

    If doc.Bookmarks.Exists("RGNR" & Format(i, "00")) Then 
    
    doc.Bookmarks("RGNR" & Format(i, "00")).Select 
    
    appword.Selection.TypeText Me.RGNR 
    
    End If 
    
    Next 
    
    ' doc.Bookmarks("RGNR").Select        ' bknome è il segnalibro in word del nome 
    
    '  appword.Selection.TypeText Me.RGNR 
    
    ' appword.Options.ReplaceSelection = ReplSel 
    
    ' doc.Bookmarks("Indagato\_1").Select   ' bkCognome è il segnalibro in word del cognome 
    
    ' appword.Selection.TypeText Me.Indagato\_1 
    
    ' appword.Options.ReplaceSelection = ReplSel 
    

    Set doc = Nothing

    Set appword = Nothing

    End Sub

    Le righe di codice che ho disabilitato al momento inserendoli come commenti, in realtà mi dovrebbero servire per quei campi che non necessitano di essere ripetuti piu volte all'interno del documento. Domanda.... posso coesistere???

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2024-04-03T15:21:45+00:00

    Ciao Sandro, cerco di spiegarmi bene

    Ho un file word in cui le prime 2 pagine contengono dei campi modulo che l'utente compila con dei dati di persone.

    Le pagine che seguono contengo della modulistica che si compila grazie a dei segnalibri, con i dati che si inserisco nel campi delle prime due pagine.

    Il problema di questo file è che è protetto per evitare che accidentalmente vengano cancellati i segnalibri. Ma spesso occorre togliere la protezione perchè in fase di stampa va sistemato il layout di stampa (margini, pezzo di testo che per una riga scivolanoo in una pagina da sola etc..)

    Quell che sto cercando di realizzare è una maschera in cui l'utente inserisce i campi e poi clicca sui vari pulsanti posti nel piè di maschera senza bisogno di avere nessuna conoscenza di nulla.

    Fin qui va tutto benissimo, tranne che per uno dei report, che oltre a contenere i campi se si compilano nella maschera, contiene anche tanto testo che di fatto non mi ci entra dentro un unico report.

    Quindi per questo report chiamato "AVVISO" ho delle necessità specifiche, che sono

    1. fare in modo che alcuni campi si ripetano;
    2. alcuni campi non compilati nella maschera, non sia visibili nella stampa e ne nemmeno lascino spazi vuoti.

    Per ovviare ad una di queste esigenze mi sono imbattuta nell'automazione da access a word... che è esattamente quello che serve a me. perchè mi permette di predisporre gia il modello formattato e impostato come dico io, senza che nessuno debba modificarlo o sistemarlo.

    Per tutti gli altri modelli che devo generare lo faccio tranquillamente con i report.

    Detto questo allego:

    • copia del database;
    • il codice che ho trovato che mi permette di automatizzare (male al momento);
    • codice per un ciclo FOR Next .. che mi permette ( anzi mi permetterà, perchè per ora o non funziona o mmi ripete un campo 20 volte ma nello stesso punto :) ) di ripetere degli specifici campi in piu parti di questo documento "AVVISO".

    Ecco il link https://www.dropbox.com/scl/fi/gb6hyuxlkvbxoc4ss2h3g/415.rar?rlkey=omk0eojbg02s8tl93hfnsuge0&dl=0 Grazie per la aver letto fino alla fine... :D

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2024-04-03T07:30:20+00:00

    ciao Sandra,

    francamente faccio fatica ad inquadrare il problema....prova a condividere una demo, non vedo alternative in questo caso, privo di dati sensibili, mi raccomando...in modo da valutare quanto ci dici.

    Pubblica il link.

    temo che il tutto sia anche dovuto ad un problema di normalizzazione...

    facci sapere.

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2024-04-02T15:56:58+00:00

    Ciao Sandro...

    In realta ci ho provato a rendere semplice il tutto.... ed usare i report era la soluzione ideale per le mie poche conoscenze.

    Nel report riesco ad inserire tutti i campi, ma poi il report continua con dei riferimenti di legge che devo inserire obbligatoriamente, arrivato ad un certo punto il report mi fa uscire un avviso in cui mi dice "testo da modificare troppo lungo"

    Non permettendomi piu di inserire caselle in cui incollare il testo. Per caso conosci qualch escamotage per aggirare queto limite?

    abbassando quantoo piu possibile lo spazio di un record, non va oltre i 55 cm.

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2024-04-02T15:41:41+00:00

    ciao Sandra,

    hai visto che forte l'autore del post di cui hai postato il link...? :-)

    Seriamente parlando questa struttura :

    Cliente 1

    CLiente 2

    Avvocato_1

    Avvocato_2

    mi fa tanto errore di normalizzazione...non entrando troppo nel dettaglio, sei certa che un report non possa soddisfare quanto stai cercando di ottenere, evitando di inerpicarti verso l'automazione Access--->Word....?

    Valuta bene prima di proseguire e sviluppare altro se hai normalizzato bene i dati, altrimenti ti ritroverai ad applicare accrocchi continui....

    HTH.

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento