Confronto 2 colonne di 2 tabelle diverse e scrivere su altra tabella

di il
6 risposte

Confronto 2 colonne di 2 tabelle diverse e scrivere su altra tabella

Buongiorno,
premetto che ho usato molte volte VBA per Excel mentre MAI per Access.

ORa, il problema nasce dal momento di implementare una routine in VBA per Access in modo da confrontare due colonne di due tabelle diverse:
quindi abbiamo: Tabella A e Tabella B
e devo confrontare colonna "Prezzo" di tabella A e colonna "price" di tabella B.
Se l'uguaglianza è verificata, vorrei scrivere su un'altra tabella C il nome della colonna uguale (quindi se prezzo=price vorrei scrivere "prezzo" nella tabella C)

Il problema nasce dal fatto che non riesco ad accedere al contenuto della della (Ad esempio in VBA per excel con il comando cells(3,3) ad esempio..)
Come fare???
Come confrontare due colonne di due tabelle diverse in Access e scrivere su un'altraTabella???

Grazie mille... con Access mi trovo proprio male..

6 Risposte

  • Re: Confronto 2 colonne di 2 tabelle diverse e scrivere su altra tabella

    Access ha una logica completamente diversa da Excel. Non si ragiona mai per CELLE (questo nome non esiste in Access), caratteristica tipica di Excel, ma per RECORD e omogeneità di dati. Quello che hai richiesto ha (per me) "poco senso".
  • Re: Confronto 2 colonne di 2 tabelle diverse e scrivere su altra tabella

    Premo88 ha scritto:


    premetto che ho usato molte volte VBA per Excel mentre MAI per Access.
    e per quello che chiedi non serve vba ma è sufficiente una query.

    Premo88 ha scritto:


    ... con Access mi trovo proprio male..
    Perché, come ha detto Osvaldo, Excel non è Access. Perché vuoi farlo con o su Access?
  • Re: Confronto 2 colonne di 2 tabelle diverse e scrivere su altra tabella

    Philcattivocarattere ha scritto:


    Premo88 ha scritto:


    premetto che ho usato molte volte VBA per Excel mentre MAI per Access.
    e per quello che chiedi non serve vba ma è sufficiente una query.

    Premo88 ha scritto:


    ... con Access mi trovo proprio male..
    Perché, come ha detto Osvaldo, Excel non è Access. Perché vuoi farlo con o su Access?
    Io infatti lo farei molto semplicemente in Excel con 2 foglio distinti e scriverei direttamente su un altro foglio però sono Aimhe "obbligato" a farlo con Access.
    Comunque, sono arrivato a questo codice:
    Dim DBCorrente As Database
    Dim Tabellone As Recordset
    Dim R As Recordset
    Set Tabellone = DBEngine(0)(0).OpenRecordset("SELECT a.*, b.* FROM SOFIA AS a INNER JOIN SIMCORP AS b ON a.PortfolioCode=b.Portfolio", dbOpenDynaset)
    Set R = DBEngine(0)(0).OpenRecordset("RIS", dbOpenDynaset)
    Do Until Tabellone.EOF
    If Tabellone.Fields("EndDate") = Tabellone.Fields("Todate") Then
    'R.Fields("Risultato").Value = "Uguale" <----
    Else
    R.Fields("Risultato").Value = "NO" <--------
    End If
    Tabellone.MoveNext
    Loop
    Tabellone.Close
    DBCorrente.Close
    End Su

    Quindi confronto, faccio ciclo per tutte le righe e ho un problema dove c'è la freccia, cioè nel momento di scrivere sulla tabella R "uguale" se verificata l'uguaglianza e "NO" se è False

    Non so come scrivere su altra tabella, ho trovato su google il metodo Addnew ma ho provato e non riesco...
  • Re: Confronto 2 colonne di 2 tabelle diverse e scrivere su altra tabella

    Per me, prima di parlare/analizzare il codice VBA o intraprendere una query, sarebbe bene che tu spiegassi perché devi fare questa operazione.
    Si tratta di dati MOMENTANEAMENTE DISORDINATI e vuoi rimettere tutto in ordine in una TabellaC definitiva?
    Se lo stesso Prezzo di € 1,00 tu lo trovi su più Prodotti (sapone, detersivo, pasta, zucchero…) come intendi gestire questa cosa? Per me non puoi affidarti al solo campo Prezzo.
  • Re: Confronto 2 colonne di 2 tabelle diverse e scrivere su altra tabella

    OsvaldoLaviosa ha scritto:


    Per me, prima di parlare/analizzare il codice VBA o intraprendere una query, sarebbe bene che tu spiegassi perché devi fare questa operazione.
    Si tratta di dati MOMENTANEAMENTE DISORDINATI e vuoi rimettere tutto in ordine in una TabellaC definitiva?
    Se lo stesso Prezzo di € 1,00 tu lo trovi su più Prodotti (sapone, detersivo, pasta, zucchero…) come intendi gestire questa cosa? Per me non puoi affidarti al solo campo Prezzo.
    Ti spiego, A seguito di una migrazione, dovrei verificare se tutti i campi di una tabella sono uguali a tutti i campi di un'altra.
    Il campo "prezzo" è solamente una semplificazione ma dovrei verificare l'uguaglianza tra più campi due a due.
    Quindi per il momento stavo facendo un codice che confrontava solamente due campi e scrivere il risultato del confronto, poi se funzionava correttamente dovrei aggiungere anche altri campi.
  • Re: Confronto 2 colonne di 2 tabelle diverse e scrivere su altra tabella

    Anche per me basterebbe una query:
    1. Apri una nuova query in visualizzazione struttura
    2. Importa TabellaA e TabellaB
    3. Unisci con una linea di join i campi da confrontare, nello specifico Prezzo con Price. Se ce ne sono altri dovrai mettere altre corrispondenti linee di join
    4. Trascina nella griglia sottostante i campi che ti interessa vedere e/o riportare poi in TabellaC
    5. Dai un'occhiata prima al risultato della query
    6. Se il recordset restituito risponde alle tue aspettative, trasforma la query in "query di accodamento" dove dovrai indicare che vuoi accodare in TabellaC e specificare i corrispondenti campi
    7. Esegui la query una volta sola

    Dopo di che mi aspetto che tu butti via la query, TabellaA, TabellaB e decidi di lavorare in TabellaC in maniera "normale".
Devi accedere o registrarti per scrivere nel forum
6 risposte