Collegare Access con word

di il
31 risposte

Collegare Access con word

Buongiorno, stavo cercando un metodo su come scrivere dei dati presenti in una maschera access su un file word. Girando su internet ho trovato un file che mi da questa possibilità.

Ho aperto il file, testato e funziona molto bene.
Però ho provato a riprodurre lo stesso codice nel mio file Access e mi da errore nel punto quando vengono dichiarate le variabili...

Sono sicuro che è in quel punto perché quando da errore il debug mi riporta li...
Poi ho fatto la prova di togliere le variabili e il codice funziona, ma alcune cosa tipo la formattazione del testo l allineamento non funziona.. Perché richiama la variabile che ho cancellato.!

Sono andato a vedere i riferimenti e sono tutti attivi. Cosa può essere? Non credo che sia la versione di Access altrimenti anche con l altro file mi darebbe errore.
Helpppo che mi to scemulendoo

31 Risposte

  • Re: Collegare Access con word

    Dobbiamo andare anche noi a tentoni, senza vedere il codice, oppure ci dai qualche indizio tecnico concreto...?
  • Re: Collegare Access con word

    Suggerisco caldamente una serie ed attenta lettura del REGOLAMENTO!
  • Re: Collegare Access con word

    Certo, fra poco allego il codice che ho trovato.... Cos è che ho sbagliato che gibra mi ha suggerito di leggere il regolamento?
    grazie ad entrambi
  • Re: Collegare Access con word

    Ecco il codice che ho trovato..
    sono riuscito anche a cambiare i dati da importare ( però vi importo il codice madre).. Metto la sequenza 1(* e 1)* per indicare dove mi da errore nel mio file..

    Public Sub Automazione_Esempio1()
    'apre un nuovo documento Word e invia del testo
    'applicando varie formattazioni
    'premere F8 per eseguire il codice passo passo

    1(* Dim Wrd As Word.Application, Doc As Word.Document 1)*

    On Error Resume Next 'gestione errori step by step
    'cerca un'istanza di Word già aperta
    Set Wrd = GetObject(, "Word.Application")
    If Err.Number = 429 Then
    'se c'è stato un errore è perchè Word non era già aperto:
    'aprilo adesso
    Set Wrd = CreateObject("Word.Application")
    End If
    On Error GoTo 0 'ripristina la segnalazione degli errori

    Wrd.Visible = True
    Wrd.Activate
    Set Doc = Wrd.Documents.Add

    With Wrd.Selection
    .Font.Bold = True
    .Font.Size = 24
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
    .TypeText "CISA 2 - Paola (CS) 17-18 giugno 2006" & vbCrLf & vbCrLf
    .Font.Bold = False

    .Font.Size = 16
    .ParagraphFormat.Alignment = wdAlignParagraphDistribute
    .TypeText "Automazione Access-Word, 1° esempio" & vbCrLf & vbCrLf

    .Font.Underline = True
    .Font.Size = 14
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
    .TypeText "eseguita " & Format(Date, "dddd d mmmm yyyy") & _
    " alle ore " & Format(Now, "hh:nn:ss") & vbCrLf & vbCrLf
    .Font.Underline = False

    .Font.Size = 14
    .ParagraphFormat.Alignment = wdAlignParagraphJustify
    .TypeText "Non avendo inserito alla fine della sub le istruzioni "
    .Font.Italic = True
    .TypeText "Doc.Close "
    .Font.Italic = False
    .TypeText "e "
    .Font.Italic = True
    .TypeText "Wrd.Quit"
    .Font.Italic = False
    .TypeText ", Word rimane aperto per consentire all'utente di apportare eventuali "
    .TypeText "modifiche al documento appena creato e salvarlo o stamparlo." & vbCrLf
    End With 'Wrd.Selection

    Set Doc = Nothing
    Set Wrd = Nothing


    Se tolgo la seguente riga "1(* Dim Wrd As Word.Application, Doc As Word.Document 1)*" il codice funziona, ma giustamente non riconoscendo la dichiarazione a cosa fa riferimento parte del codice non funziona.
  • Re: Collegare Access con word

    L'errore, con buona probabilità, è dovuto alla mancanza del riferimento alla libreria di Word.
    Quindi... basta aggiungere quella e tutto fila liscio? No, perché si progetta in earlybinding e si distribuisce in latebinding.
    Dove hai trovato quel codice? i commenti sono opera tua o anche quelli erano già scritti così?
  • Re: Collegare Access con word

    danilo123 ha scritto:


    Certo, fra poco allego il codice che ho trovato.... Cos è che ho sbagliato che gibra mi ha suggerito di leggere il regolamento?
    grazie ad entrambi
    La prossima volta allora fai tutto in un colpo solo, ci evitiamo di dirtelo..., hai posto una domanda senza alcun presupposto per risponderti... quindi INUTILE.

    Sicuramente come ti ha detto PHIL non hai i riferimenti alle LIB di WORD... ma il problema non è Inserirli quanto non inserirli nel modo corretto.

    Inserire i Riferimenti è una parte dello sviluppo(chiamata EarlyBinding) che si opera consapevoli che poi si dovranno rimuovere(LateBinding).

    Ne consegue che serve qualche NOZIONE in più per operare che il Semplice COPIA/INCOLLA.

    Questo quindi è Errato:
    
    Dim Wrd As Word.Application, Doc As Word.Document
    Si deve fare così
    
    Dim Wrd As Object
    Doc As Object
    Tuttavia ti suggerisco di capire meglio la logica dell'associazione Tardiva di come si usa e del perchè poi si deve togliere...!
  • Re: Collegare Access con word

    danilo123 ha scritto:


    Certo, fra poco allego il codice che ho trovato.... Cos è che ho sbagliato che gibra mi ha suggerito di leggere il regolamento?
    Se leggi il REGOLAMENTO lo capisci.
    Io ti ho dato solo un consiglio, non sono un moderatore e quindi non ho l'onere di spiegare come comportarsi in una community.
    L'onere tocca a te, nel leggere il REGOLAMENTO e rispettarlo.
    Questo ti permetterà di ottenere più risposte, più rapide e non irritare i membri del forum.
    Ecco perché ti ho dato il consiglio... Sarà solo vantaggio tuo.
  • Re: Collegare Access con word

    Grazie ad entrambi per la risposta..
    Philcattivocarattere..... Ora non ricordo di preciso il sito dove mi ha fatto scaricare un file access.
    In questo file, se volete posso girarvelo, c'è il codice aperto. Nel suo codice già erano presenti questi commenti ( che per me sono stati molto d'aiuto).
    Anche se ancora non capisco come mai nel file di questa persona il codice funziona bene, mentre nel mio ( che ho fatto semplicemente copia ed incolla senza cambiare niente), non funziona....
    Per caso conoscete qualche manuale che spieghi filo e per segno la fase earlybinding e latebinding? E' da poco che mi sono cimentato in questo mondo, principalmente per hobby, ma voglio essere un perfezionista.

    @Alex... effettivamente hai ragione, l'avevo pensato anche io che non stavo dando tutti i dati per rendere la domanda più comprensibile.
    Il problema è che, l'ho scritto dal cellulare ed il codice c'è l'avevo in ufficio. Infatti stamattina, la prima cosa che ho fatto, è stata quella di leggere qualche bella risposta e di condividere il codice.
  • Re: Collegare Access con word

    gibra ha scritto:


    danilo123 ha scritto:


    Certo, fra poco allego il codice che ho trovato.... Cos è che ho sbagliato che gibra mi ha suggerito di leggere il regolamento?
    Se leggi il REGOLAMENTO lo capisci.
    Io ti ho dato solo un consiglio, non sono un moderatore e quindi non ho l'onere di spiegare come comportarsi in una community.
    L'onere tocca a te, nel leggere il REGOLAMENTO e rispettarlo.
    Questo ti permetterà di ottenere più risposte, più rapide e non irritare i membri del forum.
    Ecco perché ti ho dato il consiglio... Sarà solo vantaggio tuo.
    Ti ringrazio per la gentile risposta. A volta fare le cose di fretta, perchè si vuole raggiungere quel risultato ma c'è qualcosa che lo impedisce, ti fa rabbia ed che si commetto errori come questo.
  • Re: Collegare Access con word

    Ho provato a sostituire
    Dim Wrd As Object
    Doc As Object

    con
    Dim Wrd As Word.Application, Doc As Word.Document

    Per quando lancio la macro, mi evidenzia Doc As Object è scrive: errore di compilazione: istruzione non valida all'esterno del blocco type. Che vuole da me ??
  • Re: Collegare Access con word

    danilo123 ha scritto:


    Ti ringrazio per la gentile risposta.
    Prego

    danilo123 ha scritto:


    A volta fare le cose di fretta, perchè si vuole raggiungere quel risultato ma c'è qualcosa che lo impedisce, ti fa rabbia ed che si commetto errori come questo.
    Eh eh, la fretta è una cattiva consigliera.
    Tanto più che se non fornisci prima le informazioni necessarie, come hai visto, nessuno è in grado di aiutarti.


    Ma stai dimostrando saggezza ed umiltà!
    Il che ti assicura un futuro raggiante.
  • Re: Collegare Access con word

    danilo123 ha scritto:


    ...
    Per quando lancio la macro, mi evidenzia Doc As Object è scrive: errore di compilazione...
    Forse ti sei confuso scrivendo qui perché la sostituzione è "al contrario". In ogni caso, al 99% (oggi va a probabilità) hai qualche riferimento mancante nelle librerie (almeno a quella di Word). Devi togliere la spunta da tutte quelle con la dicitura "Manca", anche se non le usi.
  • Re: Collegare Access con word

    danilo123 ha scritto:


    Ho provato a sostituire
    Dim Wrd As Object
    Doc As Object

    con
    Dim Wrd As Word.Application, Doc As Word.Document
    Che come dicevo è errato...

    danilo123 ha scritto:


    Per quando lancio la macro, mi evidenzia Doc As Object è scrive: errore di compilazione: istruzione non valida all'esterno del blocco type. Che vuole da me ??
    Vuole che ti scriva giusto sapendo quello che scrivi.
    Manca il DIM... non hai visto...?
    
    Dim Wrd As Object
    Dim Doc As Object
    Se hai queste lacune... credo sia troppo complesso per te affrontare un Debug su questo codice.
  • Re: Collegare Access con word

    Ciao Alex, effettivamente questo è proprio un errore da.....................................
    Se devo confessarti una grave negligenza è che non so usare il Debug.
    A volte parte altre invece devo testare manualmente il programma (non chiedermi come mai :S ) è una cosa che stanotte cercherò qqualche video su youtube ... . Oppure quando veramente vado in crisi su una cosa metto delle msgbox nei punti più cruciali per capire se il programma legge la riga oppure no...

    Tornando al punto più cruciale...

    Ho messo Dim però il problema persiste.. Non mi da giustamente più errore nelle dichiarazioni però è come se non prendesse in considerazione

    With Wrd.Selection
    .Font.Bold = True
    .Font.Size = 24
    1(* .ParagraphFormat.Alignment = wdAlignParagraphCenter 1)*
    .TypeText "CISA 2 - Paola (CS) 17-18 giugno 2006" & vbCrLf & vbCrLf
    .Font.Bold = False


    Ho messo una serie di msgbox per interrompere il codice e vedere se il file word si aggiornava.. Il grassetto funziona, la grandezza pure, il messaggio pure.... mentre l'allineamento no... Per caso esiste qualche altro codice per l'allineamento può essere?
Devi accedere o registrarti per scrivere nel forum
31 risposte