Da Word a Access

di
Anonimizzato8433
il
11 risposte

Da Word a Access

Ciao a tutti,
in più di un occasione su questo forum ho chiesto (ed ottenuto) info sulle procedure per compilare un documento word valorizzandolo con dati pescati da access. Ora pongo un quesito simile ma visto da una prospettiva diversa e cioé:
- dati uno o più modelli word con campi moduli, elenchi a discesa e caselle di controllo sarebbe possibile compilare una o più tabelle access ?

Intuitivamente direi di si ma credetemi mi sfugge il come.

Ringrazio tutti

mazda91

11 Risposte

  • Re: Da Word a Access

    Leggi i bookmark di word, apri un recordset sulla tabella di Access con Da o Ado se lavori da work ed aggiungi. .
  • Re: Da Word a Access

    Ciao Alex,
    grazie della tura risposta.
    Sull'automazione tra access e word curiosando qua e la ho trovato un tuo post ...
    https://www.iprogrammatori.it/forum-programmazione/access/access-word-con-piu-bookmarks-t16285.html

    non mi dirai che con il solo codice inserito posso trasferire da access a word bypassando una procedura del tipo:

    Private Sub ESPORTA_Click()
    Dim Wrd As Word.Application, Doc As Word.Document
    Dim Rst As DAO.Recordset
    Dim Modello As String, NomeFile As String, i As Integer
    Dim Record As String, SQL As String
    Dim Tbl As String * 1
    Dim TotRiga As Currency, Totale As Currency
    Dim ReplSel As Boolean

    Modello = CurrentDb.Name
    Modello = Left(Modello, Len(Modello) - Len(Dir(Modello))) & "Lettera.dot"

    On Error Resume Next 'gestione errori step by step
    Set Wrd = GetObject(, "Word.Application")
    If Err.Number = 429 Then

    Set Wrd = CreateObject("Word.Application")
    End If

    On Error GoTo 0 'ripristina la segnalazione degli errori

    Wrd.Visible = True

    Wrd.Activate

    ReplSel = Wrd.Options.ReplaceSelection
    Wrd.Options.ReplaceSelection = True

    Set Doc = Wrd.Documents.Add(Modello)

    Doc.Activate

    Doc.Bookmarks("NomeCliente1").Select

    Wrd.Selection.TypeText Me.Cognome & " " & Me.Nome

    Grazie
  • Re: Da Word a Access

    Chi ha visto questo post ...

    https://www.iprogrammatori.it/forum-programmazione/access/access-word-con-piu-bookmarks-t16285.html

    sa darmi un aiuto nel capirlo ??

    Grazie
  • Re: Da Word a Access

    Spiega cosa ti serve, perchè quelle 3 righe non mi pare siano così assurde quindi di cosa hai bisogno...?
  • Re: Da Word a Access

    Nel guardare l'esempio relativo alle procedure word<>access ho tovato questo tuo post, Alex, dal quale mi sembra di capire (ma non ne sono sicuro) che possa essere utilizzato per la compilazione in sostituzione della procedura di selezione di ogni singolo bookmark in un doc e successiva sovrascrittura con dati prelevati da tabella access.
    Nel dettaglio succede che ho realizzato alcuni (2) documenti word che vengono popolati da valori presi da access, ed ho visto che quando si tratta di mettere insieme parecchi campi il lavoro diventa lungo, allora chiedevo se il codice da te realizzato potesse abbreviare la preparazione dei documenti word. Ho provato ad usarlo ma non ci sono riuscito.
    Preciso che non le trovo per nulla assurde ma chiedo solo un aiuto nel capirlo perchè come immaginerai, abbi paziena, se ne ero capace non chiedevo il vs. aiuto.
    Grazie
  • Re: Da Word a Access

    Il File DOT, o Modello di Word, non te lo prepara nessuno... lo devi fare tu, ma nel concetto che fatto 1 VOLTA vale sempre, quello che ho proposto semplifica proprio la gestione di Automatizzarne in modo SEMPLICE e veloce la compilazione.

    Ti allego un LINK che riporta un'esempio di quello che era il DEMO originale sempre mio dal quale puoi trarre eventualmente qualche spunto ulteriore.
    http://forum.masterdrive.it/access-79/access-word-wizzard-per-gestione-compilazione-documenti-73917/

    Questo Esempio è relativamente COMPLESSO, ma se hai voglia di studiarlo ne comprenderai certamente la flessibilità e la comodità...
  • Re: Da Word a Access

    Ciao Alex, naturalmente mi è chiaro che devo prepararmi i modelli DOT, non è lì che mi va via tanto tempo ma invece ne spendo per preparare le routine in access per i singoli documenti. Ecco perchè cerco una scorciatoia per diminuire i tempi. Ho provato ad inserire il codice

    Private Sub Comando181_Click()
    For Each fld In mFrm.RecordsetClone.Fields
    If mFrm.Controls(fld.Name).Tag <> "EXCLUDE" Then
    If Not IsNothing(mFrm.Controls(fld.Name).Value) Then
    If mobjWordDoc.Bookmarks.Exists(fld.Name) Then
    mobjWordDoc.Bookmarks(fld.Name).Select
    mobjWordApp.Selection.TypeText Text:=mFrm.Controls(fld.Name).Value
    End If
    End If
    End If
    Next
    End Sub


    all'interno di una routine però il debug si ferma sul quarto rigo e mi indica come errore
    Sub o function non definita.

    MI pare di capire che il codice CLONI tutto quello che trova nella form e selezioni i bookmarks e li valorizzi. Ho inteso correttamente ? Il 2° e 3° IF non mi sono del tutto chiari. Cosa fanno ?

    Grazie del condividere le competenze
  • Re: Da Word a Access

    La premessa è che i valori da usare sono quelli VISUALIZZATI in una Maschera, che ovviamente sono contenuti in CONTROLLI.
    Ipotizzando che non tutti i Controlli debbano essere ESPORTATI ho sfruttato la proprietà TAG dei controlli associati per identificare quelli che NON SONO da esportare.
    Ora siccome in una maschera ci possono essere anche Controlli NON ASSOCIATI, ho ipotizzato di usare il RecordsetClone di maschera che sicuramente contiene il NOMECAMPO ed il VALORE di tutti.

    A questo punto ho ciclato tutti i CAMPI del Recordset, trovato la corrispondenza tra NOMECAMPO e NOMECONTROLLO in Maschera, e se questo controllo non è da ESCLUDERE, passo il controllo al Foglio di WORD, nel quale vado a verificare che il BOOKMARK, chiamato come il NOMECAMPO, esista...

    Se esiste, lo seleziono, e lo VALORIZZO con il contenuto del Campo.

    L'errore che ricevi è IsNothing, in quanto è una ROUTIONE che ho scritto io..., puoi sostituirla con un controllo del contenuto del Controllo
    
    If Len(mFrm.Controls(fld.Name).Value & vbNullstring)>0 Then
    Il Demo che ti ho linkato, ha un'interfaccia che consente di RELAZIONARE in modo più flessibile i Bookmark con i Campi da usare per scrivere... in questo modo non è RIGIDO il collegamento...
  • Re: Da Word a Access

    Grazie Alex,
    vediamo se (col tuo suggerimento) riesco a velocizzare la produzione dei diversi (tanti) doc/dot che vorrei preparare.
    Visto che l'obiettivo come avrai capito sono i documenti di testo, ho anche pensato di poter creare dei report. Naturalmente è tutt'altra cosa ma, forse, potrei anche risolvere con una certa celeità quanto mi propongo. Il problema, però, è dato dal fatto che nei report non c'è granchè la possibilità di inserire testo. Cioè a dire, lascia stare che puoi mettere un'intestazione e altro però se volessi creare un documento tipo con più testo che dati la cosa sarebbe (credo) quasi impossibile da realizzare. Non credi. Per lavoro conosco e uso filemaker che in questo (anche in altre cose) è fenomenale. Pensi sia possibile ottenere, per esempio, un testo del tipo ... (ne riporto un pezzo)

    In data [DATA] alle ore [ORE] il signor [COGNOME] [NOME] ha ritirato il seguente materiale [ELENCO]
    che era stato bla-bla-bla. ????
    Non trovo il modo come inserire il testo nel report. Dovrei utilizzare un'etichetta ? Se così fosse al suo interno come faccio a metetrvi i dati ?

    Grazie e ciao
  • Re: Da Word a Access

    Sinceramente non riesco a comprendere in che direzione vuoi andare, non capisco nemmeno se conosci Access e quindi se le domande che hai posto fino ad ora nascono da ragionamenti tecnici ponderati o se è per approssimazioni successive...

    Le risposte tecniche che ti ho dato davano per ASSUNTO, visto che non hai specificato, tu avessi già svolto un'analisi realizzativa della soluzione.

    Quindi, chiarisci meglio lo scenario per evitare che si faccia solo aria fritta.
  • Re: Da Word a Access

    Circa la mia conoscenza di access, posso dire - ovviamente - che non sono un esperto.
    Oltre che studiando l'unico modo che conosco per imparare qualcosa è ... provare-riprovare-anche sbagliare-e andare avanti ! In questo non posso che ringraziare chi mi aiuta.
    Non sono un programmatore nè in access nè in altro. Le mie competenze sono in altri campi.
    Ad ogni modo la soluzione seguita è quella di passare dati a word da access, in modelli che poi l'utente salva singolarmente. Alcuni documenti, però, vorrei anche provare a farli come report.
    In questi report, come dicevo nel post precedente, vorrei riuscire a fare in modo che siano meno spogli di come normalmente avviene. Nei report più che metterci intestazioni e poco altro non trovo come avere qualcosa di maggiormente articolato come una o due frasi intervallate da campi-dati. Tutto qua.
    Grazie
Devi accedere o registrarti per scrivere nel forum
11 risposte