Query di aggiornamento su access, come faccio?

di il
24 risposte

24 Risposte - Pagina 2

  • Re: Query di aggiornamento su access, come faccio?

    Ciao Ragazzi.
    Purtroppo ancora non va, mi sa che ci farò pasqua con questo problema.

    Ho provato le query che mi avete consigliato, ma ottengo sempre e solo parte dei dati in una query di accodamento.

    La mia idea era invece quella di due query una di Aggiornamento che mi modificasse i record della Tab_A in base ai valori della tab_b (dove ne esistano), senza però svuotare i valori dei record della tab_A quando non trovano corrispondenza di recond nella tab_B (non è semplice da spiegare, e quindi capisco la fatica che fate a capirmi )

    Poi la seconda query sarà di accodamento per i record presenti solo su tab_B e che dovranno essere portati su tab_A.

    Grazie per il supporto ragazzi.
    Ciao.
    ParideS.
  • Re: Query di aggiornamento su access, come faccio?

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    Non so dirti se hai scelto la strada giusta perchè non conosco il problema.... quello che mi hai proposto è già una delle soluzioni.
    es. non capisco a cosa servono due tabelle simili ...
    Forse (mi sbilancio) dovresti leggere qualcosa sulla normalizzazione dei database.
    Magari rivedere la base dati oppure ........

    normalizzazione http://freeasp.html.it/guide/lezione.asp?id=13 è un'articolo sintetico ma rende l'idea.

    Saluti
    http://www.isola-di-krk.net
    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->



    Saluti
    http://www.isola-di-krk.net
  • Re: Query di aggiornamento su access, come faccio?

    Scusa maurizio, ho letto ciò che mi avevi proposto.

    Ti spiego il ciò che sto facendo:

    Ho un database con un'anagrafica (tab_A) che ho bisogno di aggiornare con i dati di un database a cui non ho accesso.

    Mi sono stati passati dei file di testo con tutti i nominativi che poi ho convertito in nella tab_b

    Ora ho bisogno di aggiornare la Tab_A del mio programma, con i dati della Tab_b che mi sono creato. solo di buono ho solo il numero di tessera sanitaria "tsan" che mi fa in poche parole da ID (univoco).

    Spero che ora vi sia tutto più chiaro

    Ciao
    ParideS.
  • Re: Query di aggiornamento su access, come faccio?

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    INSERT into Tabella_A
    SELECT Tabella_B.tsan, Tabella_B.nome, Tabella_B.cognome
    FROM Tabella_A as appoggio RIGHT JOIN Tabella_B ON appoggio.tsan = Tabella_B.tsan
    WHERE (((appoggio.tsan) Is Null));
    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->

    Questa è ancora valida, aggiungi ad a tutti gli elementi presenti solo in b cioè A Unione (A Complemento B)

    Suppongo che il valore presente nei campi dello stesso record delle tabelle di A e B abbiamo la stessa importanza e la stessa informazione.
    Suppongo che tutti i valori presenti in B != da null siamo o uguali o più importanti di quelli presenti in A.
    es.
    tab_A codice 2233232432 maurizio grannonio
    tab_B codice 2233232432 maurizio grannonio pescara

    il risultato sarà
    tab_A codice 2233232432 maurizio grannonio pescara

    UPDATE Tabella_A INNER JOIN Tabella_B ON Tabella_A.tsan = Tabella_B.tsan SET Tabella_A.nato_a = IIf([tabella_b].[nato_a] Is Null,[tabella_a].[nato_a],[tabella_b].[nato_a]);

    questa non è la soluziona ma ti aiuta.



    Saluti
    http://www.isola-di-krk.net
  • Re: Query di aggiornamento su access, come faccio?

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>Suppongo che il valore presente nei campi dello stesso record delle tabelle di A e B abbiamo la stessa importanza e la stessa informazione.<hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->

    non considerare il testo quotato



    Saluti
    http://www.isola-di-krk.net
  • Re: Query di aggiornamento su access, come faccio?

    Grazie Gente,

    penso di esserci arrivato con i suggerimenti di Maurizio.

    la query completa è la seguente:

    UPDATE Tabella_A LEFT JOIN Tabella_B ON Tabella_A.tsan = Tabella_B.tsan SET Tabella_A.tsan = IIf([tabella_b].[tsan] Is Null,[tabella_a].[tsan],[tabella_b].[tsan]), Tabella_A.nome = IIf([tabella_b].[nome] Is Null,[tabella_a].[nome],[tabella_b].[nome]), Tabella_A.cognome = IIf([tabella_b].[cognome] Is Null,[tabella_a].[cognome],[tabella_b].[cognome]);

    Mi ritornano tutti i record della tabella_A con i valori aggiornati dalla Tabella_B

    Ora devo fare una query per accodare alla tabella_A quei record presenti solo sulla tabella_B che non hanno riscontro nella tabella principale (tabella_A), ma penso che non sia un problema oramai.

    Grazie di nuovo per il supporto e l'aiuto.
    e Buona Pasqua a tutti.

    Ciao.
    ParideS.
  • Re: Query di aggiornamento su access, come faccio?



    Saluti
    http://www.isola-di-krk.net
  • Re: Query di aggiornamento su access, come faccio?

    Ciao,

    ho fatto anche la query di occodamento per aggiungere i record presenti in tabella_b ma non ancora presenti in tabella_a.

    Solo ho un problema, sul database di prova ho dovuto indicizzare i campi tsan come valori univoci altrimenti accodando ottenevo più volte lo stesso record. Ora sul database "ufficiale" mi ritrovo con 26000 record e nel momento in cui vado a dare alla proprietà il volore univoco,....mi rileva che ci sono valori doppi.

    Avete idea di come possa fare a:

    1) evitare di dover cambiare le proprietà di tsan a valore unico, la query da me utilizzata è la seguente.
    INSERT INTO Tabella_A ( tsan, nome, cognome )
    SELECT Tabella_B.tsan, Tabella_B.nome, Tabella_B.cognome
    FROM Tabella_A RIGHT JOIN Tabella_B ON Tabella_A.tsan = Tabella_B.tsan;

    OPPURE

    2) riuscire con una query a capire quali sono i valori duplicati.

    Scusate se torno a rompere di nuovo, ma non faccio altro che affossarmi in problemi,....forse ci sto passando troppo tempo sopra questo db, e non riesco nemmeno nelle cose più elementari.

    Ciao.
    ParideS.
  • Re: Query di aggiornamento su access, come faccio?

    Ciao,
    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>ho fatto anche la query di occodamento per aggiungere i record presenti in tabella_b ma non ancora presenti in tabella_a.
    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->
    quale hai usato, quella che ho quotato?


    Saluti
    http://www.isola-di-krk.net
  • Re: Query di aggiornamento su access, come faccio?

    Scusami,...non capisco cosa intendi per quotato.

    Comunque sono andato avanti mettendo la proprietà "duplicati non ammessi" ai campi tsan.

    Per normalizzare i campi tsan ho proceduto a fare per ogni tabella una "Query ricerca duplicati" (fortunatamente sono pochi), ed ho sistemato i volori doppi.

    Penso di essere arrivato alla conclusione.
    Grazie di nuovo per l'aiuto ed il sostegno.

    Se avrò altri problemi non esiterò a rompervi le scatole di nuovo.
    Ciao.
    ParideS.
Devi accedere o registrarti per scrivere nel forum
24 risposte