Stampa unione e percorso

di il
8 risposte

Stampa unione e percorso

Ciao a tutti,
mi trovo nella seguente situazione:
ho preparato una cartella nella quale ho un db e 5 documenti word che pescano i dati da tabelle e query per essere popolate.
Il pc sul quale lavoriamo è su un portatile e quando i colleghi mi chiedono aggiustamenti o altro io sono costretto a lavorare sul portatile perché lavorando su quello dell'ufficio poi ho i percorsi che non combaciano. Come ovviare ??
Sembrerà una pirlata (e magari lo è) ma mi fa perdere un sacco di tempo. Mi chiedevo se fosse possibile avere una procedura di configurazione nella quale andare a settare dove-è-questo e come-si-chiama-quello. Grazie

8 Risposte

  • Re: Stampa unione e percorso

    mazda91 ha scritto:


    ...
    Il pc sul quale lavoriamo è su un portatile e quando i colleghi mi chiedono aggiustamenti o altro io sono costretto a lavorare sul portatile perché lavorando su quello dell'ufficio poi ho i percorsi che non combaciano. Come ovviare ??
    Sembrerà una pirlata (e magari lo è) ma mi fa perdere un sacco di tempo. Mi chiedevo se fosse possibile avere una procedura di configurazione nella quale andare a settare dove-è-questo e come-si-chiama-quello...
    Mi è capitato di leggere qualcosa della Stampa Unione in questi giorni e, ricordando questo thread, ho dato qualche occhiata in più.
    Secondo me (dico così perché non ho testato la procedura) devi approfondire il contenuto della proprietà che restituisce un oggetto MailMergeDataSource
    Da quanto ho intuito, in particolare devi prima "leggere" la proprietà
    Siccome, però, DataSource viena indicato come "Read-only" non credo che sia possibile modificarla direttamente (altrimenti non sarebbe Read-only, lapalissiano), direi che si deve passare da passando gli appositi parametri, magari presi dalla lettura di ConnectionString scritta prima.
    Se dovesse essere necessario prima di usare il metodo OpenDataSource "resettare" il documento, come se non fosse mai stato un documento per la stampa unione, direi che si deve impostare la proprietà a wdNotAMergeDocument
    Il tutto si può fare lato Access usando Automazione. Poiché l'operazione lavora però tutta sul modello ad oggetti di Word che non conosco, questo potrebbe essere solo un buco nell'acqua (anche se mi sembra che la logica regga).
    Se funziona, secondo me è più facile da fare che da spiegare (e se mi lasci qualche giorno forse ci provo anch'io).
  • Re: Stampa unione e percorso

    Ciao Philcattivocarattere,
    grazie della risposta. Confesso che ho capito poco, però, di quanto suggerisci (naturalmente per mia ignoranza). Credo di aver visto tempo fa un db che faceva qualcosa del genere cioè permettere di settare alcuni parametri, ma non sono riuscito a ritrovarlo così da poterci studiare. Ciao
  • Re: Stampa unione e percorso

    mazda91 ha scritto:


    Ciao Philcattivocarattere,
    grazie della risposta. Confesso che ho capito poco, però, di quanto suggerisci (naturalmente per mia ignoranza).
    Se la cosa ti può consolare, mi ci sono messo anch'io e non è che abbia capito proprio tutto (quando è stato ora di metterlo in pratica) e la soluzione è ancora lontana, tanto da mettere in dubbio parecchio di quello che ho scritto.
    Potresti dire che sistema operativo usi (mi interessa soprattutto se a 32 o 64 bit) e la versione di Access (anche questa se 32 o 64 bit)? Il db è mdb o accdb? Così mi regolo, nel limite del possibile, a fare le prove nel modo più simile alla tua configurazione: visto che è una cosa nuova anche per me, almeno che possa servire ad entrambi.

    mazda91 ha scritto:


    Credo di aver visto tempo fa un db che faceva qualcosa del genere cioè permettere di settare alcuni parametri, ma non sono riuscito a ritrovarlo così da poterci studiare. Ciao
    Se lo trovi riportane qui il link così lo guardo anch'io (e tutti gli altri in generale)
  • Re: Stampa unione e percorso

    Ciao Philcattivocarattere,
    l'esempio ancora non l'ho ritrovato. Uso Access 2007 , s.o. 10 64 bit e 7 64 bit file *.accdb.
    Grazie
  • Re: Stampa unione e percorso

    In merito alla automazione della stampa unione di Word, come ti è stato indicato, puoi agire sulla proprietà MailMerge.OpenDataSource ed i seguenti link forniscono spunti realizzativi:
    https://support.microsoft.com/en-us/kb/28533
    https://support.microsoft.com/en-us/kb/20997
    http://www.msofficeforums.com/mail-merge/7388-automating-mailmerge-access.html
    http://www.utteraccess.com/forum/index.php?showtopic=1913144
    http://www.vbforums.com/showthread.php?757183-Word-cannot-open-datasource-error
  • Re: Stampa unione e percorso

    mazda91 ha scritto:


    ...
    l'esempio ancora non l'ho ritrovato.
    Può essere qualcosa del genere?
    Word merge Examples
    Secondo me ci sono buoni spunti: il solo fatto che cerchi il modello della stampa unione in una subdirectory \Word del percorso in cui si trova il db è un ottimo inizio.
    Indovina come l'ho trovato? seguendo un link trovato in uno dei link segnalati da willy55 sempre sulla stampa unione! willy55, il principe dei link.
    Edit: non è quello che speravo, usa l'esportazione su un file csv con nome fisso ed ogni volta lo cancella e ricrea. Vabbè... studio lo stesso se c'è qualcosa che può venir buono.
  • Re: Stampa unione e percorso

    Ottimo il link, ci sono diverse conse interessanti dalle quali poter imparare. Non sono sicuro di trovare proprio ciò che cercavo ... ma l'importante è cominciare.
  • Re: Stampa unione e percorso

    mazda91 ha scritto:


    Ottimo il link, ci sono diverse conse interessanti dalle quali poter imparare. Non sono sicuro di trovare proprio ciò che cercavo ... ma l'importante è cominciare.
    Gironzolando sul web ancora avevo trovato qualcosa. Solo adesso sono riuscito a fare un minitest e sembra funzionare, nel senso che si apre il file e trova l'origine dati che imposto tramite codice
    Questa è una bozza di codice
    Private Sub cmd0_Click()
    Dim strFilePath   As String
    Dim objWord   As Object 'Word.Document se in earlybinding
    
    strFilePath = CurrentProject.Path & "\FileWord.docx"
    
    Set objWord = GetObject(strFilePath, "Word.Document")
    
    '  Make  Word  visible.
    objWord.Application.Visible = True
    
    objWord.MailMerge.OpenDataSource _
    Name:="C:\folder1\folder2\Databaseclienti.accdb", _
    LinkToSource:=True, _
    Connection:="TABLE Clienti", _
    SQLstatement:="Select * FROM [Clienti]"
    
    'objWord.MailMerge.Execute
    
    End Sub
    Qui i percorsi dei file sono statici, con FileDialog puoi scegliere come valorizzare percorso e nome dei vari file.
    Se togli il commento dall'ultima riga prima di End Sub word completa la procedura di stampa unione (creando un nuovo file o inviando alla stampante, dipende dalle impostazioni già presenti). Visto che a te interessava solo gestire i percorsi dovrebbe essere sufficiente così. Come sempre, comunque, all'apertura del file chiede comunque la conferma di esecuzione della SQL.
    Ah, dimenticavo: occhio alla chiusura e distruzione di tutti gli oggetti una volta esaurito il loro compito.
Devi accedere o registrarti per scrivere nel forum
8 risposte