Newsgroup: it.comp.appl.access
Titolo: combo da combo

Salve a tutti
ho il problema seguente, ringrazio chi vorrà aiutarmi; preciso che ho
trovato un utilissimo suggerimento sul sito comune, ma resta un problema che
non so risolvere.
Access 2000: casella combinata che prende i valori da un'altra casella
combinata
La maschera FrmPranzo contiene due combo, chiamate combo1 e combo2.
Selezionando ad es. "Secondo" da combo1, vorrei che comparissero solo i
secondi (filetto, arrosto, ecc.) nella combo2.
Struttura delle tabelle:
TblTipoPiatto
IDTipoPiatto Contatore
TipoPiatto  Testo  (Contiene Primo, Secondo, Contorno, Dolce, Frutta)
TblPiatti
IdPiatto  Contatore
IdTipoPiatto Numerico (Chiave esterna per la TblTipoPiatto)
Piatto  Testo  (Contiene ad es. Lasagne, Filetto, Mascarpone, Fragole)
TblPranzo
IdPranzo Contatore
IdTipoPiatto
IdPiatto Numerico (Chiave esterna per la TblPiatti)
Nella combo1, come origine riga, ho:
SELECT DISTINCTROW [TblTipoPiatto].[IDTipoPiatto],
[TblTipoPiatto].[TipoPiatto] FROM [TblTipoPiatto];
Nella combo2, come origine riga, ho:
SELECT DISTINCTROW TblPiatti.IdPiatto,TblPiatti.Piatto FROM TblPiatti WHERE
(((TblPiatti.IDTipoPiatto)=[forms]![frmpranzo]![combo1]));
Sull'evento "Dopo aggiornamento" della combo1 ho inserito questo codice:
Me!combo2.Requery
La frmPranzo è di tipo Tabulare. Ora, quando inserisco il primo record,
tutto funziona. Quando inserisco il secondo record, la combo2 del primo
record mi si azzera. E così via per i seguenti record. I dati in tabella
entrano in modo corretto, ma vorrei che le descrizioni rimanessero sul
video. Dov'è l'errore?
Grazie
Davide

 ha scritto nel messaggio
news:wM9v8.28762$vF6.9...@news2.tin.it...

Nell'evento dopo aggiornamento di Combo1 prova a depositare il valore di
[forms]![frmpranzo]![combo1] in un campo nascosto della maschera che puoi
chiamare Dep e fai riferimento a quello in combo2 :
Nella combo2, come origine riga, avrai:
SELECT DISTINCTROW TblPiatti.IdPiatto,TblPiatti.Piatto FROM TblPiatti WHERE
(((TblPiatti.IDTipoPiatto)=[forms]![frmpranzo]![dep]));
ti consiglio di fare la requery di combo2 su attivato di combo2 che non fa
mai male :)
Ciao, Ale.

 ha scritto nel messaggio
news:wM9v8.28762$vF6.9...@news2.tin.it...

Non stai tenendo conto che stai usando una maschera di tipo Tabulare e che,
anche se visualizzi nella maschera contemporaneamente più piatti, di combo2
nella maschera ce ne è una sola e quindi riuscirai a visualizzare solo il
piatto dell'ultimo tipo piatto selezionato con combo1.
Prova a fare così:
1) creati una query chiamata Query1 e che abbia il seguente codice SQL:
SELECT DISTINCTROW TblPiatti.IdPiatto,TblPiatti.Piatto FROM TblPiatti;
2) creati una query chiamata Query2 e che abbia il seguente codice SQL:
SELECT DISTINCTROW TblPiatti.IdPiatto,TblPiatti.Piatto FROM TblPiatti WHERE
(((TblPiatti.IDTipoPiatto)=[forms]![frmpranzo]![combo1]));
3) Apri la struttura di frmPranzo e indica Query1 come origine riga di
combo2.
4) A fronte dell'evento "Dopo aggiornamento" di combo1 genera il seguente
codice VBA:
Me!combo2.RowSource = "Query2"
Me!combo2.Requery
5) A fronte dell'evento "Dopo aggiornamento" di Combo2 genera il seguente
codice VBA:
Me!combo2.RowSource = "Query1"
Me!combo2.Requery
Così dovrebbe funzionare: l'"azzeramento" degli altri piatti avverrà solo
sino a quando non effettuerai la scelta su combo2.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------