Stampa unione, mi segna solo gli ID

di il
17 risposte

Stampa unione, mi segna solo gli ID

Buongiorno a tutti,

ho cercato un po sul forum ma non ho trovato nulla, spero non sia un doppione.

ho bisogno di attivare tramite word la stampa unione legata al mio file access.

il mio file access è composto da alcuni database, in particolare il database costruttore così definito
- ID
- Nome Costruttore
- Codice
- Indirizzo
----------------------------------
1 Paperino 123 Via Milano 115
2 Topolino 156 Via Gramsci 15
3 Pippo 958 Viale Libertà 18

Quando popolo la tabella GENERALE, quando devo selezionare Nome Costruttore, il Codice oppure l'indirizzo mi si apre il menu a tendina (collegato alla tabella costruttore) dal quale posso scegliere i relativi dati:

- Nome Costruttore --> dal menu a tendina scelgo Paperino (identificato con ID1 nella tabella costruttore)
- Codice --> dal menu a tendina scelgo 156 (identificato con ID1 nella tabella costruttore)

Fino a qui direi tutto abbastanza ok.

il problema mi si pone quando devo usare stampa unione su word, in quanto per tutti quei campi da me scelti tramite il menu a tendina non mi indica la mia scelta da me fatta (ad esempio Topolino) ma mi indica il relativo ID.

vi allego foto per farvi capire meglio.

c'è un modo per far uscire il dettaglia e non l'ID su word? devo modificare qualcosa su access?

ho provato a prendere i valori direttamente dalla tabella o da una query, ma il risultato non cambia

Grazie mille
Allegati:
30093_bd67787e4b1f6ac47c81b5fba06ec093.png
30093_bd67787e4b1f6ac47c81b5fba06ec093.png

17 Risposte

  • Re: Stampa unione, mi segna solo gli ID

    Mostra il codice VBA che usi per la stampa unione.
  • Re: Stampa unione, mi segna solo gli ID

    Ho appena iniziato con access e non conosco bene i codici.
    questo codice l'ho prodotto seguendo alcuni Tutorial che permettavano di aprire un file word (associato con stampa unione) direttamente da access.

    Private Sub Comando0_Click()
    Dim word As Object
    Dim doc As Object
    Set word = CreateObject("Word.Application")
    word.Visible = True
    Set doc = word.Documents.Open("C:\Users\massi\Desktop\Database inserimenti\Lettera.docx")
    End Sub


    Ma con questo modo vedo solo gli ID e mai il valore che mi serve vedere.
    mi potreste dare una mano su come risolvere il problema?
  • Re: Stampa unione, mi segna solo gli ID

    Dal momento che nella stampa unione hai solo gli identificatori (ove ID = 1) è chiaro che non fornisci a Word i dati delle colonne associate presenti nelle caselle combinate.
    Nella modalità standard la selezione delle colonne (column) nella caselle combinata (combobox) parte da zero quindi il riferimento è NomeCasellaCombinata.Column(0) che a te corrisponde al primo elemento (ed è per questo che vedi il solo identificatore = 1); per cui se volessi l'elemento della seconda colonna dovresti far riferimento a NomeCasellaCombinata.Column(1), per la terza colonna a NomeCasellaCombinata.Column(2) e così via.
    Visto che apri il documento di Word (Lettera.docx) devi adattare la sua origine dati (nei dati che impiega tabella o query che sia) in modo da far riferimento alle colonne delle caselle combinate di tuo interesse.
    Vedi questi link che possono fornirti elementi di conoscenza:
    https://support.microsoft.com/it-it/office/utilizzare-una-tabella-o-una-query-come-file-di-dati-per-la-stampa-unione-860ef4bc-e793-4004-8a1b-5c8a34c7e89d
    https://www.iprogrammatori.it/forum-programmazione/access/access-word-t18003.html
    https://flylib.com/books/en/2.396.1.79/1
    https://www.access-programmers.co.uk/forums/threads/automate-mail-merge-from-command-button.80909/
    https://www.accessforums.net/showthread.php?t=7573
  • Re: Stampa unione, mi segna solo gli ID

    Grazie mille per la risposta, ho letto i link che mi hai mandato ma sinceramente ci ho capito veramente poco o nulla.
    non riesco a comprendere come poter dire a querd di non prendere l'ID (colonna1) ma di prendere le colonne successive.

    mi riuscite a dare una mano a comprendere meglio?

    in alternativa, non è possibile creare una colonna testo che copi il valore?
    ci ho provato ma mi fa lo stesso giochetto, e mi segna l'ID anche in questo caso
  • Re: Stampa unione, mi segna solo gli ID

    Il documento Word con cui effettui la stampa unione avrà associato una origine dati, la quale viene fornita da Access.
    Quindi devi modificare questa "origine dati" in modo da aggiungere la colonna (della casella combinata) di interesse.
    In generale avrai una query, ove si specificano i dati e fra questi la casella combinata (la quale presenta l'identificativo ID=1) che fa riferimento alla tabella "costruttori" ed ai suoi dati correlati.
    Quindi per avere gli ulteriori elementi oltre alla prima colonna, della casella combinata, devi porre anche quelle correlate di interesse.
    Implementa, quindi, la query che comprenda in join tutte le tabelle correlate in modo che l'insieme dei dati sia fornito a Word e questi possono essere visionati nell'elenco, appunto, della "origine dati".
    Magari vedi i seguenti link che ti possono essere utili per la terminologia:
    https://support.microsoft.com/it-it/office/usare-la-stampa-unione-per-inviare-dati-di-access-a-word-053cc639-fe30-4d3a-943d-0bee0892f16a
    https://www.myclads.com/qRevreyD
    https://www.andreapacchiarotti.it/archivio/word-stampa-unione.html
    https://www.comefarea.it/produttivita/office2010/word2010/stampa-unione/
    https://www.access-programmers.co.uk/forums/threads/use-second-column-of-a-combo-in-a-query.204785/
  • Re: Stampa unione, mi segna solo gli ID

    Ciao Willy,

    ti ringrazio per il tempo che mi stai dedicando ma purtroppo le guide che mi hai indicato non mi aiutano a risolvere il problema.
    le prime 4 sono legate a come creare la stampa unione, e questo passaggio io l'ho gia fatto.

    Analizzando quello che mi hai scritto la mia unica opzione è riuscire a creare una query dove mi indici nel campo manufacturer al posto dell'ID il valore.
    e queste guide non mi sembra mi spieghino come fare questo o forse si ma non riesco a coglierlo...

    da quello che ho visto la mia unica soluzione è che da access devo creare una quesry qche mi crei il dato giusto, ma è proprio quello che non reisco a fare.
  • Re: Stampa unione, mi segna solo gli ID

    A me non è chiaro se:
    A) Hai realizzato già una stampa unione che "sostanzialmente" funziona a meno del problema ID. Questo mi fa pensare a una stampa unione (per così dire) "classica". La seconda trance di link forniti da willy55 dovrebbe essere su questa via. A tal proposito ti segnalo anche quest'altro link

    B) Nel tuo primo post hai allegato una immagine di una maschera. Questo mi fa pensare che tu prelevi i dati del solo record che appare in maschera in quel momento. Ciò mi fa pensare a una strutturazione di codice VBA e dialogo con Word di tutt'altro spessore, che fa leva sui segnalibri (Bookmarks) di Word e che Access può gestire via VBA.

    Puoi chiarire cosa dovrebbe apparire nel documento Word, riguardo i dati di Access?

    Ho da fare alcune puntualizzazioni:

    MP84 ha scritto:


    il mio file access è composto da alcuni database, in particolare il database costruttore così definito
    Un file di Access è un DATABASE. Dentro il database ci sono TABELLE.

    MP84 ha scritto:


    - ID
    - Nome Costruttore
    - Codice
    - Indirizzo
    ----------------------------------
    1 Paperino 123 Via Milano 115
    2 Topolino 156 Via Gramsci 15
    3 Pippo 958 Viale Libertà 18
    La tabella vogliamo nominarla al "plurale"? Ossia Costruttori?
    Il campo ID è sempre bene nominarlo esplicitamente IDCostruttore.
    Io non ho capito il significato del campo Codice. È riferito al Costruttore? Se sì, non ti basta IDCostruttore?
  • Re: Stampa unione, mi segna solo gli ID

    Ciao Osvaldo,

    per rispondere alle tue domande:

    1) SI la stampa unione è stata già creata direttamente da word, selezionando come origine data la query della tabella EDT di access
    2) No, la stampa unione è stata fatta direttamente da word, non ho usato VBO

    Nella tabella EDT in una colonna ho il menu a tendina che mi fa scegliere il nome del costruttore, inserito nella tabella costruttore così formata:
    - ID
    - Nome Costruttore
    - Codice
    - Indirizzo

    nella tabella EDT io scelgo il nome costruttore, tuttavia quando faccio stampa unione il file word mmi prende l'ID e non il nome costruttore.

    la soluzione sembrerebbe creare una query che indichi in nome costruttore al posto dell'ID, ma come si fa?
  • Re: Stampa unione, mi segna solo gli ID

    Per me sicuramente la tua base di dati da cui Word deve prendere i valori deve essere una QUERY che (direi) comprenda sia il campo ID, sia il campo testuale NomeCostruttore. Nella query devi mettere sia la tabella che hai già, sia la tabella madre correlata. Da quest'ultima includi anche il campo testuale NomeCostruttore, il cui valore apparirà in Word.

    Io però (causa mia durissima capacità di comprendonio) non ho capito cosa vuol dire

    MP84 ha scritto:


    Nella tabella EDT in una colonna ho il menu a tendina che mi fa scegliere il nome del costruttore
    Puoi raccontare a me così?
    - nome proprio tabella madre + nomi propri di tutti i loro campi
    - nome proprio tabella figlia + nomi propri di tutti i loro campi
    - rispiega il meccanismo che usi riguardo la casella combinata
  • Re: Stampa unione, mi segna solo gli ID

    Sicuramente si tratta di fare una query corretta, ma a questo punto qualcuno sa aiutarmi su come si fa?
    non ne sono capace.

    per rispondere alle tue domande ti allego anche un immagine.

    in merito alle tue richieste:
    - nome proprio tabella madre + nomi propri di tutti i loro campi
    - nome proprio tabella figlia + nomi propri di tutti i loro campi
    - rispiega il meccanismo che usi riguardo la casella combinata

    i campi sono tanti, piu di una 50 quindi faccio fatica a riepilogarteli.

    per farti capire il funzionamento:

    1) tabella Manufacturer:
    ID --> Nome Manufacturer --> Codice Manufacturer
    Esempio
    ID1 --> Paperino --> AAA
    ID2 --> Pluto --> BBB

    nella tabella EDT nella colonna manufacturer quando devo selezionare il dato (vedi immagine alllegata) mi esce la lista con tutti i nomi dei manufacturer (NON ID ma i nomi come "Papeino" oppure "Pippo") e seleziono il nome.

    quando faccio stampa unione al posto di indicarmi il nome Paperino mi prende il segnaposto ID, quindi al posto di uscirmi "Paperino" mi esce 1.

    come faccio a fare una query che mi crei nuove colonne nelle quali mi indica il test e non l'ID?
    Allegati:
    30093_caf58585630325c6fde340466363cb25.png
    30093_caf58585630325c6fde340466363cb25.png
  • Re: Stampa unione, mi segna solo gli ID

    Ci credi che ho un forte presentimento che hai un database NON NORMALIZZATO? Ho bisogno di sapere "esattamente":
    - di cosa parla il database
    - nomi propri delle tabelle che entrano in gioco
    - nomi propri di tutti i loro campi (almeno quelli più significativi...a me 50 campi in una tabella...mi puzzano assai)
    - le relazioni

    Per questi ultimi tre punti, puoi anche allegare una schermata della Finestra Relazioni (leggibile per favore...l'ultimo allegato non lo è)
  • Re: Stampa unione, mi segna solo gli ID

    Ciao,

    ti allego il file delle relazioni, spero che sia visibile.
    cosa intendi per non normalizzato?
    Allegati:
    30093_51a6ee90ff0ae2b8578a33017d38a652.png
    30093_51a6ee90ff0ae2b8578a33017d38a652.png
  • Re: Stampa unione, mi segna solo gli ID

    La normalizzazione è un INSIEME DI REGOLE che servono a far sì che il database sia il più efficiente e comprensibile. Tutti i programmatori di database conoscono almeno 3 regole fondamentali. Io non so dirti nemmeno quali sono (incomprensibili a livello teorico)...so lasciarmi guidare molto spesso dal "buon senso".
    La tua finestra relazioni mostra uno scenario eloquentemente non normalizzato. Per esempio:
    - non servono 3 tabelle Manufacturer, ne basterebbe una
    - le tabelle "generalmente" hanno nomi propri al PLURALE. Non è una regola di normalizzazione, ma aiuta a comprendere come impostare tutto il resto
    - le tabelle a destra di Manufacturer sono incomprensibili...qualcosa mi dice che può essere accorpato tutto molto meglio...ma non conosco il tuo campo professionale, il gergo e quant'altro
    - le relazioni che hai impostato sono troppo "essenziali". Si consiglia di mettere sempre la spunta su "Applica integrità referenziale"

    Non è tutto, mi sono soffermato su quello che mi balza più all'occhio.

    Osservazioni e consigli:
    1. Impossibile proseguire la discussione
    2. Devi fare un passo indietro e studiare la progettazione normalizzata
    3. Dopo il punto 2., se proprio non ti raccapezzi ancora, prova ad aprire una nuova discussione nella sezione "Progettazione database"
    4. Se non sai da dove ri-cominciare, affida il lavoro ad un professionista
  • Re: Stampa unione, mi segna solo gli ID

    Ciao Osvaldo,

    grazie mille per la risposta in merito alle tue osservazioni:

    - non servono 3 tabelle Manufacturer, ne basterebbe una
    non sono tre, ma siccome ci sono tre valori collegati ad una altra tabella il programma ne crea tre in automatio

    - le tabelle "generalmente" hanno nomi propri al PLURALE. Non è una regola di normalizzazione, ma aiuta a comprendere come impostare tutto il resto
    i nomi delle tabelle sono dettati dalle esigienze e non sono modificabili

    - le tabelle a destra di Manufacturer sono incomprensibili...qualcosa mi dice che può essere accorpato tutto molto meglio...ma non conosco il tuo campo professionale, il gergo e quant'altro
    Non possono essere accorpate, è corretto che siano cosi.

    - le relazioni che hai impostato sono troppo "essenziali". Si consiglia di mettere sempre la spunta su "Applica integrità referenziale"
    questa osservazione potrebbe essere pertinente


    Il database è complesso e dotato di molteplici tabelle tra loro correlate, il fatto che le relazioni siano tante non significa che siano sbagliate, semplicemente che è complesso.

    sicuramente un professionista potrebbe farlo molto meglio, tuttavia Il database funziona perfettamente, e non c'è nulla da modificare in tal senso.

    La mia richiesta è solo quella di come poter creare una query che al posto di prendere l'ID dei correlati prenda il valore, non sto mettendo in discussione l'idea di rifare il database
Devi accedere o registrarti per scrivere nel forum
17 risposte