Newsgroup: it.comp.appl.access
Titolo: Ricerca su casella combinata

Buongiorno,
in una maschera continua FattureRicevute, scrivo l'elenco delle fatture ricevute.
La mia esigenza è questa:
Dopo aver compilato il campo Fornitore (IdFornitore), ho il campo NumeroOrdine (CmbNOrd)dove dovrei inserire il numero ordine di quel fornitore facendo in modo che lo possa scegliere sulla base del fornitore appena inserito.
Ho provato a scrivere così nell'origine dati della casella combinata CmbNOrd:
 
SELECT Bef.NOrdine, Bef.IdFornitore, Fornitori.Fornitore
FROM Fornitori INNER JOIN Bef ON Fornitori.IdFornitore = Bef.IdFornitore
WHERE (((Bef.NOrdine) Is Not Null) AND ((Fornitori.Fornitore)=[Forms]![FattureRicevute]![IdFornitore]));
 
Bef sono tutti i miei ordini di tutti i fornitori.
Io vorrei che questa casella combinata mi facesse scegliere solo fra gli ordini di quel fornitore...
Ho anche provato a mettere su dopoaggiornamento della combo Fornitore un requery sul campo NumeroOrdine (CmbNOrd) ma non funziona.
Qualcuno sa dirmi dove sbaglio?
Spero di essermi spiegata bene...
Grazie in anticipo a tutti.


 
sull'evento "su attivato" della combo scrivi:
 
me.cmbNOrd.rowsource="select Bef.NOrdine from bef where 
bef.idfornitore=" & me.idfornitore
 
dove me.idfornitore è la casella con l'id fornitore nella machera continua
 
ciao
BFS

 bef.idfornitore=" & me.idfornitore
 
 
 
Grazie per la risposta... ma mi va in errore sulla seconda riga anche sistemando maiuscole iniziali corrette...
Sai dirmi cosa può esserci di sbagliato?
Grazie ancora per la collaborazione!!!



hai scritto tutto in una riga? come si chiamano le caselle del id 
fornitore e la casella del n° ordine nella form?
 
BFS


Allora io ho scritto su due righe così:
 
Me.CmbNOrd.RowSource = "select Bef.NOrdine from Bef where "
Bef.IdFornitore = " & me.idfornitore"
 
L'errore appare sulla seconda riga.
L'origine della maschera continua è Costi e si chiama FattureRicevute, il campo IdFornitore (Numerico) è una casella combinata che mi ricerca il fornitore, e il campo CmbNOrd è la casella combinata incriminata che ha come origine controllo NOrdine ed è un campo testo.
L'origine riga invece di CmbNOrd è:
 
SELECT Bef.IdBef, Bef.NOrdine, Bef.IdFornitore, Fornitori.Fornitore
FROM Fornitori INNER JOIN Bef ON Fornitori.IdFornitore = Bef.IdFornitore
WHERE (((Bef.NOrdine) Is Not Null));
 
Ci capisci qualcosa?
Io speravo bastasse scrivere nella query qui sopra nei criteri di IdFornitore un =Forms!FattureRicevute!IdFornitore ma non funziona...
 
Qualche idea?
Grazie mille.
 
 


Sono riuscita, grazie comunque!!!
Ho fatto partire una query esterna e non creata nella combo e funziona!!!
 


Scherzavo! Funziona sul primo rigo.
Se poi passo al secondo rigo mi cancella l'ordine inserito nel primo rigo al variare del fornitore...
Adesso devo capire perché...
 


 
ovvio...perchè la query che imposti come origine della combo da 
risultati in base al campo idfornitore...quindi quando di sposti di riga 
le combo precedenti si svuotano
 
devi usare la mia soluzione...il codice che ti ho scritto va messo tutto 
in una riga...non in due righe. è il programma di posta che me la manda 
a capo
 
ciao
BFS