Query di aggiornamento su access, come faccio?

di il
24 risposte

Query di aggiornamento su access, come faccio?

Ciao Gente,

ho un problema con una tabella base (A) da aggiornare con i dati di una tabella di aggiornamento (B).

Il problema è il seguente:

La tabella A contiene dei campi che non esistono sulla tabella B e quando faccio l'aggiornamento il risultato è una tabella che contiene si gli aggiornamenti dei record presenti sulla tabella B, ma mi svuota i valori dei record non presenti.

Come faccio a fare aggiornare la tabella A ai valori presenti sulla tabella B senza toccare i record Presenti solo sulla tabella A.

Capisco che per chi lavora tutti i giorni con Access sia una banalità, ma non tocco spesso questo programma e quindi non ricordo come si fa.

Un grazie anticipato a chi mi può dare una mano.
Ciao.

ParideS.

24 Risposte

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

    Si fa tramite gli 'ALIAS', con la clausola 'AS':

    INSERT INTO TABLE_B
    SELECT FIELD_A_1 AS FIELD_B_1, FIELD_A_2 AS FIELD_B_2
    FROM TABLE_A;

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Query di aggiornamento su access, come faccio?

    Ciao Giovann,

    Ho provato ad utilizzare l'alias, ma non ottengo i risultati sperati, ho provato ad inserire il testo nella visualizzazione sql (adeguando i nomi di tabelle e campi) ma ottengo il seguente errore: "L'input per la query deve contenere almento una tabella o una query", ma io ho inseritonella query entrambe le tabelle!!?!!

    Ho seguito le istruzioni della guida e ho creato la seguente query:
    SELECT Tabella_A.tsan, Tabella_A.cognome, Tabella_A.nome, Tabella_A.note
    FROM Tabella_A INNER JOIN Tabella_A as Tabella_B
    ON Tabella_A.tsan = Tabella_B.tsan;

    Ma come risultato ottengo di nuovo solo i valori della tabella_A.

    Mi sa tanto che non c'ho capito una mazza.
    Ho provato anche a lavorare in visuale da visualizzazione struttura, ma quando vado sui campi e su proprietà per creare l'alias (come dice la guida) non so che pesci prendere.

    Se tu (o qualsiasi anima buona)hai un pò di pazienza per spiegarmi i passi che devo fare te ne sono grato.
    Ciao.

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

    Scusami, non dicevi di dover riversare i dati dalla tabella A alla tabella B?

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Query di aggiornamento su access, come faccio?

    Purtroppo no Giovanni,

    Comunque grazie per l'interessamento e se ti viene in mente come poter fare fammi sapere.

    Grazie.

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

    Ciao,
    scusa ma non ho capito alcuni passi del tuo topic.
    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>campi che non esistono<hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>--> intendi fields non presenti, non campi con valore null?

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>ma mi svuota i valori dei record non presenti<hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>--> se i record non sono presenti come fà a svuotarli?

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>Come faccio a fare aggiornare la tabella A ai valori presenti sulla tabella B senza toccare i record Presenti solo sulla tabella A.<hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->

    Se il problema è questo, devi individuare un campo che ti permetta di relazionare le due tabelle e a quel scrivi una query di aggiornameto.

    Ma ho l'impressioni vedendo le risposte che hai ottenuto che tu non debba aggiornare ma accodare.

    Se mi chiarisci il problema ti dò una mano.


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

    Innanzi tutto scusami per la confusione che ho fatto.
    la situazione è questa:

    1 ho una tabella_A con i campi tsan, nome, cognome, note.

    2 ho una tabella_B con i campi tsan, nome, cognome.

    3 i campi da relazionare sono i tsan delle due tabelle.

    4 in tabella_A i record sono 4 e i valori di tsan sono 1,2,3,4

    5 in tabella_5 i record sono 4 e i valori di tsan sono 1,2,4,5

    6 devo aggiornare la tabella_A con i dati della tabella_B affinchè abbia presenti i 5 record (e quindi i valori di tsan siano 1,2,3,4,5).

    Spero che questa volta possa essere stato chiaro.
    Comunque sappi che apprezzo la tua pazienza nel cercare di comprendermi.
    Grazie.
    ParideS.
  • Re: Query di aggiornamento su access, come faccio?

    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));


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

    Ho provato, ma in questo modo ottengo una query di accodamento, ma io dovrei avere anche i seguenti risultati:

    1 aggiornare i dati dei campi presenti sulla Tabella_A con quelli presenti sulla Tabella_B

    2 evitare che i record presenti sulla tabella_A vengano a svuotarsi quando la Tabella_B non ha il campo tsan con un valore identico.

    Pensavo fosse possibile farlo, mi sto sempre più convincendo che dovrò utilizzare più query per ottenere il risultato voluto.

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

    Se devi aggiornare (update) oltre che accodare(insert) o sostituire (delete - insert)

    come minimo due query

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

    Mi pareva che volevo troppo.

    Sto provando a fare questo mi creo un nuova tabella (daticomuni) che contiene i record (basandomi sui valori del campo tsan) comuni ad entrambe le tabelle.

    Elimino i dati comuni da una copia della tabella_a (tab_a_appoggio). [a dire il vero sono bloccato qui perchè non mi riesce]

    Ciò che rimane la accodo alla tabella_B.

    A questo punto posso aggiornare la tabella_a originale senza perdita di dati e successivamente fare una query di accodamento con le stesse tabelle per i record presenti in tabella_b ma non nella tabella_a.

    No non sono ubriaco, e che non riesco a vedere una soluzione più veloce al momento.

    Forse se vado a fare una passeggiata quando torno è possibile che i passaggi siano diminuiti.

    Secondo te (sempre se hai capito il mio vaneggiamento) sono sulla strada giusta?

    Ciao. a dopo la passeggiata.

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

    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
  • Re: Query di aggiornamento su access, come faccio?

    Proviamo con una sola query

    INSERT INTO TABLE_A SELECT TABLE_B.* FROM TABLE_A, TABLE_B WHERE TABLE_A.TSAN NOT IN (TABLE_B.TSAN)

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Query di aggiornamento su access, come faccio?

    Ora comincio dare i numeri anch'io

    INSERT INTO TABLE_A SELECT * FROM TABLE_B WHERE TSAN NOT IN (SELECT TSAN FROM TABLE_A)

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Query di aggiornamento su access, come faccio?

    Grazie ragazzi,
    purtroppo questa mattina non posso lavorarci perchè ho un appuntamento con un cliente.

    Questa sera vi faccio sapere qualcosa.

    Grazie ancora.
    Ciao.
    ParideS.
Devi accedere o registrarti per scrivere nel forum
24 risposte