Newsgroup: it.comp.appl.access
Titolo: Problema casella combinata

Salve a tutti...
Utilizzo da poco Access, e mi trovo a dover risolvere un altro problema:
in una tabella ho 3 colonne di ricerca mediante caselle combinate. Vorrei
che,scelto un valore dalla prima (supponiamo che il campo sia Oggetti), in
automatico nella casella combinata successiva io possa scegliere delle
marche riferite SOLO  a quell'oggetto (l'origine di tali marche è una
tabella che supponiamo essere Marche). Idem passando da Marche a Modelli.
Ho provato ad utilizzare una espressione SQL del tipo SELECT...FROM...WHERE
nelle caselle interessate come origine per il controllo, ma ho ricevuto
errori o la richiesta di parametri. Ho instaurato relazioni tra le tabelle
Oggetti,Marche e Modelli ( le quali peraltro sono visibili se accedo a fogli
dati secondari), tuttavia non riesco ad ottenere una tabella riassuntiva
come descritto.
Grazie a chiunque potrà fornire aiuto.
Gabriele "VentodiMaggio"


Nell'evento Click (per es.) del controllo (Marche nel tuo caso) dove
vorresti mettere il risultato della scelta (fatta in Oggetti) metti un
"DoCmd.Requery [nome controllo è Marche]".
Nella query che da come "Origina Riga" (del controllo Marche) devi mettere
nei "criteri" del campo corripondente al controllo di partenza (Oggetti), il
valore del controllo ([nome controllo è Oggetto]).
Stai attento a ben definire le colonne dei controlli associate con campi
collegati IDecc (es. ID_Oggetti e ID_Marche, ecc...) e quelli che descrivono
il codice contenuto in ID (CampoOggetti, CampoMarche in formato testo,
ecc...).
Infine metti bene, nelle query, le tabelle collegate.
Comunque a questo punto dovresti cavartela come si deve perché questo metodo
è classico, lo verificato tante volte e funziona benissimo senza storie di
richieste di parametri e di errori strani se imposti tutti i parametri per
benino!
Ciao
Thierry


Ciao Thierry, ho agginto nell'evento la routine da te suggerita, tuttavia mi
si presentano ancora dei problemi:
se seleziono un tipo di oggetto dalla maschera (es. cellulare), mi compaiono
nella casella combinata Marca le marche relative a tale oggetto; quando però
modifico lo stesso record,cambiando oggetto, oppure inserisco un record
nuovo, nella casella Marca mi rimangono sempre le marche riferite al primo
oggetto selezionato (nell'esempio, cellulare). Vorrei invece che, scegliendo
o modificando il tipo di oggetto, in automatico mi vengano mostrate le
marche di tale nuovo oggetto, cosa che non capita. Se provo poi a
selezionare una marca non relativa all'oggetto (es. Televisore--Nokia), mi
si produce ovviamente un errore (mi si avvisa che il record tat dei tali non
esiste nel controllo). Insomma, non ho la minima idea di come risolvere
questo problema. Sarei grato per eventuali delucidazioni da parte di chi
voglia darmi un aiuto...
Grazie ancora,
Gabriele "VentodiMaggio"

 voglia darmi un aiuto...
Sì scusa tanto, ma vista l'ora tarda ho confuso il posto del Requery :-o
Pensa che avevo davanti agli occhi il codice di una maschera dove ho fatto
esattamente la stessa cosa che vuoi fare, soltanto che il tema erano i miei
CD!!
Comunque come vuole la logica, visto che quando clicchi su Oggetto, è in
quel momento che devi cambiare il contenuto di Marca, quindi è nell'evento
Click di Oggetto e non di Marca che devi mettere l'ordine di cambiare il
controllo Marca tramite il docmd.requery [Marca]. E così via per tutti i
controlli che vengono cambiati successivamente.
Se vuoi puoi fare in modo che quando apri la maschera ci sia già una scelta
senza controlli vuoti, mettendo i requery di tutti i controlli (nell'ordine
di scelta!) nell'evento click di Oggetto, cioè il primo dove fai una scelta.
Access, automaticamente sceglie il primo record di ogni controllo al momento
di ogni Requery (sperando di non aver dimenticato una impostazione che
glielo dice, ma credo di no!) e quindi all'apertura la maschera non sembrerà
un deserto dei Tartari!
Ciao
Thierry