M\'b
12-09-2004, 19:48
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! :confused: 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!
;)
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! :confused: 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!
;)