Newsgroup: it.comp.appl.access
Titolo: Combo in gerarchia sincronizzate, ma gli altri dati?

Ciao a tutto il NG.
Sul sito comune ho seguito questa faq
[HELP] ACCESS 3.72 Sincronizzare in una maschera due o più caselle
combinate tra loro in gerarchia
e ho ottenuto la sincronizzazione di due caselle combinate in
gerarchia.
Nel mio caso:
TBL_MP    (Tabella materie prime)
mpid       KEY primaria
mp_desc  Descrizione materie prime
mp_umid  Chiave esterna che collega TBL_UM
TBL_ART (Tabella articoli)
artid        KEY primaria
art_desc  Descrizione articoli
art_mpid  Chiave esterna che collega la TBL_MP
TBL_UM
umid        KEY primaria
um_desc  Descrizione unità di misura
*******************************************************
I dati x la materia prima   sarebbero questi:
MPID  MP_DESC        UM_DESC
1         RAME              KG.
2         RONDELLE      SINGOLO
3         BOBINA           LUNGHEZZA
I dati x l'articolo:
ARTID   ART_DESC                    MP_DESC    UM_DESC
1          TUBO DIAM. 12              RAME           KG.
2           RONDELLE DIAM. 13     RONDELLE   SINGOLO
*********************************************************
Nella mia maschera, l'ho pensata che dalla prima casella combinata,
scelgono la materia prima. Quindi la combo box della materia prima
filtra la seconda combo box articoli.
Quello che non mi riesce, è che selezionata la materia prima,
automaticamente la descrizione UM_DESC ossia unità di misura si
aggiorni e l'istruzione sql sarebbe questa:
SELECT TBL_MP.mp_id, TBL_UM.um_desc
FROM TBL_UM INNER JOIN TBL_MP ON TBL_UM.um_id = TBL_MP.mp_umid;
ma non riesco a farlo.
Avete qualche suggerimento?
Grazie,
Samantha


Domanda :
hai dato il requery alla 2° combo box? ovvero sulla 1° nelle evento
dopo aggiornamento inserisci:
me!2°combo.requery.
saluti

mak ha scritto:

Buongiorno Mak,
la prima combo è cbomp, su evento dopo aggiornamento c'è
Me!cboart.requery dove cboart è la seconda combo filtrata in base alla
prima.
Tutto questo funziona,
ciò che non va, è che ho dei campi legati alla tabella materie prime,
tipo il dato unità di misura, che vorrei venisse compilato ogni volta
che scelgo una nuova materia prima, purtroppo ora non funziona. come
posso fare?
Grazie,
Samantha

 ha scritto nel messaggio news:1168871850....@51g2000cwl.googlegroups.com...
Buongiorno Mak,
la prima combo è cbomp, su evento dopo aggiornamento c'è
Me!cboart.requery dove cboart è la seconda combo filtrata in base alla
prima.
Tutto questo funziona,
ciò che non va, è che ho dei campi legati alla tabella materie prime,
tipo il dato unità di misura, che vorrei venisse compilato ogni volta
che scelgo una nuova materia prima, purtroppo ora non funziona. come
posso fare?
Grazie,
Samantha
[risposta]
Quindi, non devi aggiornare la base dati della casella combinata ma preimpostarne il valore in base alla scelta effettuata sulla 
precedente casella combinata?
Se è così puoi utilizzare il DLookup per cercare il valore:
es.
Me!cboard = dlookup("um_desc","TBL_UM","um_id=" & me!mp_umid)
Ciao.
-- 
Sergio MAZZA 

Sergio MAZZA ha scritto:

Ciao SERGIO MAZZA,
Grazie per il tuo aiuto, prova e riprova con il DLOOKUP funziona,
questa è la macro da attivare dopo l'aggiornamento della prima casella
combinata, quella relativa alla materia prima:
Private Sub cbomateriaP_AfterUpdate()
Me!cboArticolo.Requery
Me!cboard = DLookup("[um_desc]", "q_frmsmdart_umdesc",
"MP_id=forms!frmsmdart!cboMateriaP")
End Sub
Dove cboard rappresenta l'unita' di misura della materia prima
acquistata.
Il q_frmsmdart_umdesc è la query che indica il dominio della funzione
Dlookup. Avevo inserito il codice SQL ma non funziona, ho dovuto
metterlo dentro una query e va. Questo è il codice:
SELECT TBL_MP.mp_id, TBL_UM.um_desc, TBL_MP.mp_umid
FROM TBL_UM INNER JOIN TBL_MP ON TBL_UM.um_id = TBL_MP.mp_umid;
Grazie e buon lavoro
Samantha

 ha scritto nel messaggio news:1169462365....@q2g2000cwa.googlegroups.com...
Ciao SERGIO MAZZA,
Grazie per il tuo aiuto, prova e riprova con il DLOOKUP funziona,
questa č la macro da attivare dopo l'aggiornamento della prima casella
combinata, quella relativa alla materia prima:
Private Sub cbomateriaP_AfterUpdate()
Me!cboArticolo.Requery
Me!cboard = DLookup("[um_desc]", "q_frmsmdart_umdesc",
"MP_id=forms!frmsmdart!cboMateriaP")
End Sub
Dove cboard rappresenta l'unita' di misura della materia prima
acquistata.
Il q_frmsmdart_umdesc č la query che indica il dominio della funzione
Dlookup. Avevo inserito il codice SQL ma non funziona, ho dovuto
metterlo dentro una query e va. Questo č il codice:
[risposta]
Infatti la Dlookup accetta, come dominio, una tabella o una query non una istruzione sql.
Grazie e buon lavoro
Samantha
[risposta]
Non per essere pignolo ma io preferisco questa di sintassi:
Me!cboard = DLookup("[um_desc]", "q_frmsmdart_umdesc","MP_id=" & Me!cboMateriaP)
Ciao.
-- 
Sergio MAZZA