Newsgroup: it.comp.appl.access
Titolo: Filtro valori possibili.

Ben rientrati dalle vacanze (per i fortunati che ci sono andati),
- nella maschera Ordini ho una sottomaschera DettaglioOrdini (legata
alla prima da IDOrdine uno-molti) nella quale una casella combinata
IDProdotto mi permette di selezionare un prodotto dalla tabella
Prodotti attraverso una query;
- la tabella Prodotti è legata uno-molti con altre due tabelle Misure
e Colore;
- nella riga d'ordine ho impostato una seconda casella combinata
Misure che, sempre con una query, preleva le misure dalla tabella
Misure.
Risultato: quando inserisco una seconda riga di dettaglio ordini le
misure che mi vengono proposte sono sempre quelle relative al Prodotto
della prima riga d'ordine.
Domanda: come posso impostare un controllo che mi permetta, una volta
selezionato il Prodotto voluto con la casella combinata di
visualizzare nella casella combinata Misure solo le misure disponibili
per quel determinato prodotto?
Gazie.
Buona giornata,
TANNAUSER.

 TANNAUSER.
Ciao TANNAUSER,
dovresti impostare l'origine riga della casella combinata Misure anzichč
alla tabella misure ad una query che seleziona tutte le misure dalla tabella
Prodotti per il prodotto selezionato dalla combo prodotto.
Mi spiego con un esempio:
Select Prodotti.IDMisura, Misura.Descrizione from Prodotti Inner Join Misure
on Prodotti.IDMisura= Misure.IDMisura  where
Prodotti.IDProdotto=[Cmb_IdProdotto]
in questo modo dovrebbe caricarti tutte le misure disponibile per il
prodotto selezionato nella  combo
sempre che prodotti uguali ma con misure diverse abbiano lo stesso
IDProdotto, altrimenti la cosa cambia!
Spero di essere stata chiara!
Saluti
Cinzia

...

Ciao Cinzia,
in effetti la mia "Origine riga" č impostata ad una query. L'esempio
che mi fai mi lascia qualche dubbio quindi cerco di essere piů chiaro
su come sono costruite le tabelle:
Tabella Prodotti:
IDProdotto (Contatore, Duplicati non ammessi),
Nome (Testo),
... altri campi (IDFornitore, Valuta, PrezzoUnitario).
Tabella Misure:
IDProdotto (Intero lungo, Duplicati ammessi).
DesMisura (testo)
Tabella RigaOrdine:
IDOrdine (Intero lungo, Duplicati ammessi),
IDProdotto (Intero lungo, Duplicati ammessi),
DesMisura (Testo).
Relazione Tabelle:
uno(Prodotto) a molti (Misure) attraverso i campi IDProdotto.
uno(Prodotto) a molti (RigaOrdine) attraverso i campi IDProdotto.
Per cortesia, alla luce di questi dati mi riformuleresti la tua
proposta di soluzione o mi correggeresti la mia che č:
SELECT Misure.IDProdotto, Misure.DesMisura FROM Prodotti INNER JOIN
Misure ON Prodotti.IDProdotto = Misure.IDProdotto WHERE
(((Misure.IDProdotto)=[DettagliOrdini]![IDProdotto])) ORDER BY
Misure.DesMisura;
Grazie mille,
TANNAUSER.

 >

Ciao Tannauser,
visti i tuoi dati, mi pare che la tua query sia corretta, probabilmente
quello che ti manca č un requery sul change dell'IDProdotto.
Sostanzialmente devi  dire ad access di ricaricarsi i dati della combo
misure perchč il prodotto č cambiato
Ipotizzo una procedura tipo questa:
Private Sub cmb_Prodotti_Change()
    me.cmb_Misure.Requery
End Sub
Saluti
Cinzia

 Cinzia
Buongiorno Cinzia,
grazie per la conferma di correttezza che mi hai dato; il "requery"
c'era già anche se non lo avevo specificato. Il problema ora è un
altro:
1. se effettuo delle modifiche direttamente nella sottomaschera
"Dettaglio Ordini" (che ti ricordo essere legata 1-n con Ordini) non
riscontro alcuna anomalia, ovvero quando scelgo un determinato
Prodotto poi, nella casella combinata delle Misure, posso selezionare
solo misure di quel determinato Prodotto;
2. se invece provo ad apportare una modifica o ad aggiungere un nuovo
Prodotto nella sottomaschera "Dettaglio Ordini" all'interno della
maschera pricipale "Ordini", allora mi appare una finestra dal titolo
"Immissione valore parametro" che mi richiede di inserire un valore
per "Forms!DettagliOrdini!IDProdotto" come se avesse perso il legame.
Hai qualche suggerimento?
Grazie,
TANNAUSER.

 > > >
[cut]

Ciao,
ci ho messo un po' a capire la differenza tra il tuo punto 1 ed il punto 2
ma alla fine ci sono arrivata.
Sostanzialmente l'errore ti capita solo quando usi la maschera
DettaglioOrdini come sottomaschera di Ordini.
Probabilmente il problema è che il parametro della query della combo misure
non è più Forms!DettagliOrdini!IDProdotto
ma Forms("Ordini").Form.DettagliOrdini.IDProdotto in quanto la form
DettagliOrdini in questo caso non fa più parte dell'insieme FORMS ma è
figlia della Form Ordini.
Saluti
Cinzia

Cinzia ha scritto:

CIao,
scusa per averti complicato la vita. Effettivamente le cose stanno come
hai ben capito cioè l'errore si presenta solo quando la maschera
DettagliOrdini è SubForm della maschera Ordini.
Ho provato a riformulare il criterio nell'istruzione SQL secondo il tuo
suggerimento:
[Forms]![Ordini]![Form]![DettagliOrdini]!.[IDProdotto] ma l'unico
risultato che ottengo è che, ora, mi chiede di inserire
"Forms!Ordini!Form!DettagliOrdini!IDProdotto".
Grazie per la sempre consueta gentilezza e pazienza,
TANNAUSER
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel
messaggio news:cgknuo$3cc$1...@news.newsland.it...

Ciao,
 prova ad inserire il  parametro nella query con la creazione con il comando
genera... nel criterio della query dovrebbe ricostruirti nel modo corretto
tutta la gerarchia, probabilmente ho messo Form nel posto sbagliato,
l'istruzione gliusta dovrebbe essere
Forms![Ordini]![DettagliOrdini].Form![IDProdotto]
ma se la costruisci con il menu genera  (Struttura della query, pulsante
destro del mouse sulla riga criteri)
 siamo più sicuri che lo ricostruisca corretto!
Saluti
Cinzia

 Cinzia
Eureka!!
Cinzia,
non so come ringraziarti perchè, ... rullo di tamburi..., ora tutto
funziona come mi aspettavo dovesse essere. La tua ultima correzione ha
risolto ogni incongruenza ed eliminato i messaggi di richiesta.
Spero che queste mie richieste non ti abbiano fatto perdere tempo prezioso
o annoiato.
Mi riprometto di ricambiare quanto prima (ma non a breve, vista la mia
poca esperienza; ho cominciato ieri con decorrenza domani).
Ti auguro una buona serata,
TANNHAUSER
"Io ne ho viste cose che voi umani non potreste immaginarvi: navi da
combattimento in fiamme al largo dei bastioni di Orione...E ho visto i
raggi B balenare nel buio vicino alle porte di Tannhauser...E tutti quei
momenti andranno perduti nel tempo come lacrime nella pioggia... E' tempo
di morire"



[cut]
Bene,
finalmente ce l'abbiamo fatta!
Buona serata anche a te.
Cinzia