Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 8 su 8

Unire record di una tabella/Query in Access

  1. #1
    me1048 non è in linea Novello

    Buongiorno a tutti e buona Domenica,
    premetto che non sono un guru in queste cose ne cerco soluzioni "pappa pronta".
    Mi diletto in programmazioni con Access per fare piccole cose giusto per svago dal momento che non ho mai studiato informatica... (magari ci fosse stata ai miei tempi).
    E' da giorni ormai che cerco di risolvere un "problema" dal quale non riesco ad uscirne proprio!
    Dunque, ho questa tabella:

    IDTARGA TARGA GUASTI

    1 - AA123BB - ABCD
    1 - AA123BB - EFGH
    2 - CC456DD - GHJK
    3 - EE789FF - QWER
    3 - EE789FF - UIOP
    _________________________________________
    voglio ottenere questo risultato:

    IDTARGA TARGA GUASTI

    1 - AA123BB - ABCD, EFGH
    2 - CC456DD - GHJK
    3 - EE789FF - QWER, UIOP
    _________________________________________

    Ho provato in molti modi ma il risultato che mi da è sempre lo stesso e cioè non riesco a compattare le targhe quindi i record. Mi restituisce sempre tutti i record anche se creo una nuova colonna di unione dati, tipo:

    IDTARGA TARGA GUASTI SOMMA GUASTI

    1 - AA123BB - ABCD - ABCD, EFGH
    1 - AA123BB - EFGH - ABCD, EFGH
    2 - CC456DD - GHJK - GHJK
    3 - EE789FF - QWER - QWER, UIOP
    3 - EE789FF - UIOP - QWER, UIOP

    Ho fatto decine di prove ovviamente cercando anche sul web qualche soluzione ma niente! Sembra che si debba usare il codice VBA, cosa che non mastico assolutamente, aihmé...
    Vorrei solo sapere se la soluzione è banale (ma io non riesco a trovare la "chiave") oppure è un discorso complesso e sicuramente non alla portata di un sotto principiante come me?
    In attesa di qualche anima gentile che mi risponde, un saluto a tutti e buona giornata

  2. #2
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Ti serve una query con un campo che richiama una Public Function in un modulo VBA. Leggi qui
    Microsoft Access tips: Concatenate values from related records
    ℹ️ Leggi di più su OsvaldoLaviosa ...

  3. #3
    me1048 non è in linea Novello
    Osvaldo grazie per l' aiuto. Sembrerà strano ma ho seguito il link che mi hai consigliato, compilato tutto alla lettera ma mi da lo stesso risultato!

    una volta creata la pubblic function (è stato sufficiente fare un copia/incolla in un nuovo modulo) apro una nuova struttura query e ci metto questo codice che mi suggerisce il sig. Allen Browne:

    SELECT [targa], ConcatRelated("[anomalie]","QAB","[id targa] = " & [id targa]) AS Guasti
    FROM QAB
    ORDER BY alias;

    dove "ConcatRelated" è il nome della funzione e "Anomalie" è la stringa da unire. Il risultato è questo:

    TARGA GUASTI
    _______________________________________________
    AA123BB - ABCD, EFGH
    AA123BB - ABCD, EFGH
    CC456D - GHJK
    EE789FF - QWER, UIOP
    EE789FF - QWER, UIOP
    ______________________________________________

    Ho provato ad invertire targa con ID targa ma mi passa l'errore 3061: "parametri insufficienti. Previsto 1"
    Ora, sicuramente ho sbagliato qualcosa, ma cosa??
    Grazie fin da ora a chiunque voglia aiutarmi. Buona serata

  4. #4
    me1048 non è in linea Novello
    TROVATO!!
    Andava aggiunto la clausola DISTINCT:

    SELECT DISTINCT [targa], ConcatRelated("[anomalie]","QAB","[id targa] = " & [id targa]) AS Guasti
    FROM QAB
    ORDER BY alias;

  5. #5
    Lo so che hai già risolto però rivedere questa cosa credo non faccia male.
    Quote Originariamente inviato da me1048 Visualizza il messaggio
    ... Mi restituisce sempre tutti i record anche se creo una nuova colonna di unione dati, tipo:
    IDTARGA       TARGA         GUASTI       SOMMA GUASTI
    
       1    -    AA123BB    -    ABCD    -    ABCD, EFGH
       1    -    AA123BB    -    EFGH    -    ABCD, EFGH
       2    -    CC456DD    -    GHJK    -        GHJK
       3    -    EE789FF    -    QWER    -    QWER, UIOP
       3    -    EE789FF    -    UIOP    -    QWER, UIOP
    
    Come eri arrivato a questa, prima di usare la funzione di Allen Browne?
    (usa i tag CODE O XCODE quanto posti il codice)

  6. #6
    me1048 non è in linea Novello
    Giusto Phil, scusate. In realtà questa tabella è una query di unone(chiamata QAB) di due query delle tabelle "Furgoni" e "Interventi". Sia in furgoni che in interventi c'è un campo che io volevo unire in un unica stringa e sono relativamente i campi "Anomalie" e "Lavori da eseguire". Seguendo il suggerimento di questa pagina: https://lnx.dicesare.com/sql/sql-com...-di-risultati/, e adattandola al mio scopo ero riuscito a creare una union delle due tabelle creando una colonna aggiuntiva così veniva fuori questo:

    ID TARGA - TARGA ---- QANOM ----- QLAVORI

    1 ---------AA123BB -------ABCD
    1 -------- AA123BB ---------------------------------EFGH
    2 -------- BB456CC --------ILMN
    3 ---------DD789EE -------- OPQR
    3 --------DD789EE ----------------------------------- STUV
    ___________________________________________
    A questo punto pensavo che una una semplice espressione in una nuova query basata su questa unione di risolvere la questione (Guasti: QANOM & ", " & QLAVORI)
    Ma il risultato era questo:

    ID TARGA - TARGA - QANOM - QLAVORI - GUASTI

    1 ---------AA123BB----ABCD-------------------- ABCD, EFGH
    1 ---------AA123BB ----------------- EFGH----ABCD, EFGH
    2 ---------BB456CC----ILMN -------------------- ILMN
    3 --------- DD789EE --OPQR--------------------OPQR, STUV
    3 --------- DD789EE -----------------STUV----- OPQR, STUV
    _______________________________________________

    E cmq ora che ci penso potevo anche crearmi una nuova query di selezione omettendo i campi QANOM e QLAVORI e aggiungendo la clausola DISTINCT forse avrei risolto?

    Un saluto a tutti
    p.s. scusate ma non so come si raffigurano quì le tabelle ...
    Ultima modifica di me1048; 13-04-2021 08:32 

  7. #7
    p.s. scusate ma non so come si raffigurano quì le tabelle ...
    con l'uso dei tag code, che aiutano ad avere la spaziatura costante (quota il mio messaggio e vedi subito, non ho sistemato l'allineamento in colonna), nonché: https://masterdrive.it/misc.php?do=bbcode#code e https://masterdrive.it/misc.php?do=bbcode#xcode
    ID TARGA  -  TARGA  -  QANOM  -  QLAVORI  -  GUASTI
    
       1 ---------AA123BB----ABCD-------------------- ABCD, EFGH
       1 ---------AA123BB  ----------------- EFGH----ABCD, EFGH 
       2 ---------BB456CC----ILMN  --------------------     ILMN
       3 --------- DD789EE --OPQR--------------------OPQR, STUV 
       3 --------- DD789EE -----------------STUV----- OPQR, STUV 
    _______________________________________________
    
    Quote Originariamente inviato da me1048 Visualizza il messaggio
    ...In realtà questa tabella è una query di unone(chiamata QAB) di due query delle tabelle "Furgoni" e "Interventi".
    Aiuto! Lasciamo stare.

    Quote Originariamente inviato da me1048 Visualizza il messaggio
    E cmq ora che ci penso potevo anche crearmi una nuova query di selezione omettendo i campi QANOM e QLAVORI e aggiungendo la clausola DISTINCT forse avrei risolto?
    Prova.

  8. #8
    me1048 non è in linea Novello
    id targa    -    targa     -     qanom  -      qlavori      -    guasti
     
                    1         - aa123bb   -      abcd         -                  - abcd, efgh
                    1         - aa123bb   -                      -  efgh         - abcd, efgh 
                    2         - bb456cc    -      ilmn         -                  -      ilmn
                    3         - dd789ee   -      opqr         -                  - opqr, stuv 
                    3         - dd789ee   -                     -   stuv         - opqr, stuv
    

    niente.. non m riiesce....
    Ultima modifica di me1048; 13-04-2021 14:38 

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Cancellazione record da una tabella tramite query
    Da Giuseppe85CT nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 12-11-2019, 00:09
  2. Confrontare record di una tabella e di una query
    Da CESABAS nel forum Microsoft Access
    Risposte: 3
    Ultimo Post: 21-11-2014, 13:43
  3. Info su creazione query per tabella con record in righe e colonne
    Da enrico130572 nel forum Microsoft Access
    Risposte: 8
    Ultimo Post: 22-12-2013, 21:02
  4. Accodare record da tabella MSQL a tabella Access
    Da Loxado nel forum Visual Basic 6
    Risposte: 0
    Ultimo Post: 10-09-2009, 17:16
  5. MS Access/SQL: unire le righe di una tabella
    Da lil nel forum Microsoft Access
    Risposte: 10
    Ultimo Post: 10-11-2008, 13:54