Condividi tramite

Query per estrarre record definiti

Anonimo
2014-02-06T16:34:40+00:00

Ho una Tabella A contenente, ad esempio, 99 record, vorrei creare una query che mi selezioni solo i record successivi al 95 ovvero il record 96, 97, 98, 99.

Nel criterio di selezione metterei il riferimento ad una casella di testo dove la query troverà il numero del record da cui partire (in questo caso il 96).

Scopo della richiesta:

Ho una Tabella A alla quale fornisco continuamente una nuova quantità di record (diciamo 20). La tabella, sulla base degli ID, automaticamente prenderà in carico solo quelli non già esistenti. Il mio problema è poter sapere quali record ha accettato perché quegli stessi record devo poi caricarli su un'altra tabella. L'unica soluzione a cui ho pensato è di farmi dire il numero dell'ultimo record prima del caricamento (esempio 150) ed il numero dell'ultimo record dopo il caricamento (esempio 159). Così saprò che i record che dovrò caricare sull'altra tabella sono quelli dal 151 al 159. Record che andrei a selezionare da Tabella A ed aggiungere a Tabella B.

Grazie anticipatamente per eventuali suggerimenti.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2014-02-06T16:49:45+00:00

Ciao luigix73,

potresti risolvere così:

inserisci nella tabella B un campo di nome Id_Origine, poi in base al campo ID di TabellaA e al nuovo campo Id_Origine di TabellaB puoi conoscere quali record in A mancano in B tramite una Query di ricerca dei dati non corrispondenti, leggi attentamente questo articolo :Confrontare due tabelle e trovare record senza corrispondenze

Quando hai messo a punto la Query di ricerca dei dati non corrispondentila puoi utilizzare come origine in una query di accodamento per inserire in B i record presenti in A ma non presenti in B stessa.

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-02-06T20:56:16+00:00

    Ciao Giorgio, pensando a quell'Id origine che mi avevi suggerito, ti spiego in che modo ho risolto così rispondo alla tua domanda. Ho aggiunto un valore di controllo in Tabella A. Il valore è 1.

    Primo passaggio senza problemi: la Tabella A (importata da excel) va a popolare con i suoi dati una MiaTabella1  (campi: idFat-idData-importo-KK) in Access. MiaTabella1 grazie ai due Id prenderà da Tabella A solo record non già presenti.

    Secondo passaggio (problema): ho la necessità di riversare in MiaTabella2 (campi: idFat-idData-Importo-Ipagato) gli stessi record scaricati in MiaTabella1.

    MiaTabella1 aveva 100 record, da excel gliene arrivano altri 20, lei ne accetta solo 10. MiaTabella1 avrà 110 record. Io ho la necessità di riversare in MiaTabella2 solo i 10 nuovi.

    Soluzione: Prima di scaricare i dati da excel metto a 0 il KK sui record di MiaTabella1. Scarico i nuovi dati da Excel così quelli che MiaTabella1 accetterà avranno KK=1. Da una query su MiaTabella1 (con selezione KK=1) scarico in MiaTabella2, come volevo, solo i record che ha accettato anche MiaTabella1.

    Al prossimo caricamento, prima di scaricare da excel, metto kk=0 sui record in MiaTabella1 e scarico i nuovi record che arriveranno con kk=1.

    Grazie sempre per i suggerimenti, ciao.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-02-06T19:03:20+00:00

    Ciao luigix73,

    sei stato chiarissimo ma dal fatto che A abbia un Id univoco è evidente che gli Id nuovi inseriti in A non possono esistere in B, quindi direi che vale il suggerimento dato.

    se non è così puoi mostrare un esempio di dati presenti in A e B e di A quali si dovrebbero trasportare in B ?

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-02-06T17:45:08+00:00

    Ciao Giorgio, purtroppo il mio problema è diverso. La Tabella A ha due campi ID (non sono ammesse ripetizioni). La Tabella B ha gli stessi ID (ripetizioni ammesse). Quando scarico i dati la Tabella A aggiunge solo i dati non ripetuti. La Tabella B li prende tutti mentre devo farle prendere solo quelli accettati da Tabella A. Ecco perché sapendo quanti record ha caricato Tabella A con una query sulla stessa estrapolerei solo i record aggiunti e li trasferirei in Tabella B.

    La query di dati non corrispondenti non troverà le non corrispondenze perché ci sarà sempre corrispondenza fra le due Tabelle solo che in Tabella A avrò 100 record ed in Tabella B avrò sicuramente gli stessi 100 più tutti quelli scartati da A.

    Le mie due Tabelle hanno questi campi:

    Tabella A: IdFat-IdData-Importo (IdFat ed IdData senza ripetizioni)

    Tabella B: idFat-IdData-Importo-Ipagato (IdFat ed IdData con ripetizioni)

    Spero di essere stato più chiaro.

    La risposta è stata utile?

    0 commenti Nessun commento