Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    23

    [ACCESS] VBA e recupero dati

    Ciao!

    Sto creando un Db con un certo livello di complessità, l'opera avanza ma ora ho un problemino, mi scuso se mi delungo ma cerco di essere preciso

    PREMESSA:

    in sintesi, nel codice VBA di una maschera (riferita ad una tabella "Prestazioni") vorrei recuperare un'informazione di una seconda tabella (tabella "Utenti")

    Tra le due tabelle esiste un'integrità referenziale del tipo:

    Prestazioni.Cognome <--------> Tabella2.Utenti

    Entrambi di tipo numerico

    Nella maschera ho inserito per il campo cognome una "combobox" in modo tale da far risultare non il codice ID (cioè Prestazioni.Cognome = 12 , ad esempio) ma il valore stringa salvato nella tabella utenti (cioè per Prestazioni.Cognome = 12 in realtà viene visualizzato Utenti.Cognome = Rossi)

    Per fare questo, nella sezione dati della proprietà ComboBox, sotto 'Origine Riga' ho inserito la Query:

    SELECT Utenti.Cognome, Utenti.ID
    FROM Utenti
    ORDER BY Utenti.ID;

    Mettendo poi la proprietà 'Colonna associata' a 2

    PROBLEMA:

    Attraverso codice VBA faccio in modo che, ad ogni variazioni di determinati campi, un algoritmo calcola un valore numerico da inserire in un ennesimo campo della tabella Prestazioni.

    Ma per fare questo devo recuperare un altro campo della tabella Utenti, vale a dire Utenti.Mansione (anche lui numerico) da dare in pasto all'algoritmo

    Ed il problema è proprio questo! Non riesco a recupere questo valore!

    Ho pensato di variare la query scritta sopra inserendoci, dopo 'Utenti.Cognome, Utenti.ID' anche ', Utenti.Mansione' per poi perscare in vba il valore relativo alla voce selezionata nel ComboBox in questo modo:

    ComboCognome.Column(2)

    Partendo dal presupposto che la colonna 0 è Cognome (visualizzata nel combo), la colonna 1 è ID (associata come riferimento al combo) e la colonna 2 è Mansione.

    Ma in realtà VBA non pesc proprio nulla! restituisce un laconico NULL!

    Se invece inserisco Column(0) oppure Column(1) - giusto per provare la correttezza del comando - mi restituisce correttamente il Cognome e l'ID associato, rispettivamente.

    Ho provato, infine, a 'girare' la query inserendo un 'SELECT Utenti.Cognome, Utenti.Mansione, Utenti.ID' con la proprietà 'Colonna associata' pari a 3 - ma in questo modo access non riconoce correttamente la relazione di integrità referenziale e il comando Column(x) mi rende solo valori NULL

    FINALMENTE VI CHIEDO:

    Cosa sbaglio? Come recuperare l'informazione che mi serve?
    Magari lanciando una Query direttamente da codice VBA? è possibile? come fare?

    Grazie a chiunque leggerà fino alla fine..
    Ciao!
    W il pupo! (^_^)

  2. #2
    Utente di HTML.it L'avatar di seclimar
    Registrato dal
    Sep 2002
    Messaggi
    21,042
    io ti aiuterei.. ma non ho capito molto ... su tutto quello che hai scritto...
    cosa ti va e cosa non ti va...


    in ogni caso..se hai problemi su una SELECT ...
    prendi la SELECT dal codice...
    fai un copia e incolla su una nuova vista..e la testi li!
    quando hai trovato l'errore.. correggi quella sul codice.

  3. #3
    ciao..per recuperare da VBA un campo di una tabella t consiglio d fare:

    set Nome indicativoTabella = currentdb.openrecordset ("seelct * from tabelladoverecuperarecampo")

    al limite con aggiunta di una where per filtrare i records...

    poi per avere il valore

    nome indicativotabella.nomecampo (reale)


    nn sono stata molto kiara magari dimmi che campo vuoi recuperare e con che criteri (magari quello con lo stesso congome...)


    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.