Newsgroup: it.comp.appl.access
Titolo: problema filtro fra 3 form

ho una form A non associata a tabelle che contiene 2 form B e C in relazione 
uno B a molti C
come posso mettere una casellacombinata nella form A che scegliendo il 
valore contenuto nella form C mi filtra anche i record della form B che 
contengono il valore del filtro scelto?
 
grazie a tutti. 
 


Se B e C sono in relazione ha senso filtrare per C?
Mi sembra che tu debaa filtrare per B e C lo dovresti avere di 
conseguenza in funzione di 1 B >> C
 
 
-- 
 
ac (x=y-1)

in funzione di 1 B >> C
 
mi spiego meglio
B � la lista abbonamenti e C � la lista corsi del tal abbonamento 
selezionato in B
ma se volessi sapere quanti stanno facendo il "corso di chitarra" della 
tabella C
credo che dovrei applicare un filtro alla maschera C e la B verr� filtrata 
di conseguenza
mostrando solo gli abbonamenti con il "corso di chitarra" questo � quello 
che vorrei ottenere
 
 


wrote:

Mi ricorda tanto il teorema dei 3 CC...
A=B B=C allora A=C.
Non fa una piega... ;-)
 
@Alex

@Alex
 
:)
 

"tmtube"  ha scritto nel messaggio 
news:5168bc9f$0$37119$4faf...@reader1.news.tin.it...

Mi sento come la particella di sodio della pubblicit� dell'acqua, qualcuno 
ha capito il mio problema?
 

 ha capito il mio problema?
 
Ciao,
come giustamente ti faceva capire Alessandro, il filtro della tabella
B non lo puoi ricavare dalla tabella C in quanto la relazione uno a
molti è rispettivamente tra la tabella B e C.
Ad esempio, nella tabella B hai i seguenti dati:
1) Corso di chitarra
2) Corso di nuoto
 
mentre nella tabella C hai tre nomi relazionati con il corso di
chitarra:
Tizio
Caio
Sempronio
 
e altri due nomi relazionati con il corso di nuoto:
Bianchi
Rossi
 
Nel caso tuo, che senso avrebbe filtrare uno dei suddetti nominativi
per sapere a quale corso appartiene?
Detto questo, due sono le cose: o non hai descritto bene la struttura
del database in quanto potresti avere ad esempio tre tabelle al posto
di due ed in questo caso il discorso cambierebbe, oppure stai facendo
solo confusione.
Ciao Vladimiro

 >Ciao Vladimiro
 
 
cerco di spiegarmi meglio
ho una tabella abbonamenti associata alla maschera B
ho una tabella corsi associata alla maschera C
 
nella maschera b c'� l'allievo e il tipo di abbonamento scelto ma non il 
corso che � una lista di corsi nella maschera C
 
per� vorrei poter chiedere al DB quante persone stanno frequentando il corso 
di chitarra
 
come potrei fare? magari � pi� semplice di quel che penso ma non � chiaro.
 
Grazie.
 

 corso che è una lista di corsi nella maschera C
 
dunque tu hai maschera B con sottomaschera C giusto?
Esempio:
Nella maschera principale(B) hai come nome Bianchi con un abbonamento
e nella sottomaschera(C) relazionata con la maschera principale ti
esce corso di chitarra.
Ci siamo fin qui?
 

Ci siamo fin qui?
 
Si ci siamo ma non solo lui far� il corso di chitarra io vorrei un men� a 
tendina in maschera C che mi filtra un determinato corso fra quelli 
disponibili e mi filtra gli allievi e abbonamenti in B che includono quel 
corso
 
 
 

 corso
 
Ciao, adesso ho capito: stai facendo proprio un gran confusione! :-)
Dunque, la relazione 1 a molti e la conseguente creazione di una
maschera principale con sottomaschera prevede un solo record (1) in
maschera principale e uno o più record (molti) in sottomaschera.
Questo significa che un nominativo con il suo abbonamento può avere
uno o più corsi; se poi ci sono più nominativi che fanno gli stessi
corsi, con la suddetta struttura(maschera-sottomaschera) potrai vedere
solo un nominativo per volta.
Ora, se tu hai bisogno di ricavare quanti nominativi fanno un
determinato corso, non lo puoi certamente ricavare dalla stessa
struttura in quanto, come ti ripeto, la maschera principale non può
contenere più di un solo record per volta. Chiaro fin qui?
 
Per fare quello che chiedi, potresti crearti una maschera con origine
record una query formata dalle due tabelle A - B con due caselle di
testo : Nominativo e Abbonamenti ed una casella combinata che potrai
mettere in piè di pagina maschera formata solo dalla tabella B con il
solo campo Corsi in raggruppamento dati. Su dopo aggiornamento della
Cbo(casella combinata) inserirai il seguente codice:
DoCmd.ApplyFilter , "Corsi ='" & Replace(Me.Cbo, "'", "''") & "'"
 
Ciao Vladimiro
 

Forse ho tralasciato qualcosa
 
A � la maschera principale non associata a tabelle "diciamo il contenitore" 
B � la form abbonamenti in visualizzazione maschere continue quindi pi� 
record C � una maschera allo stesso livello di B cio� B e C sono entrambe 
sottomaschere di A e entrambe sono in visualizzazione continua quindi piu 
record io quando clicco un record di B in C visualizzo i corsi di 
quell'abbonamento
 
vorrei ottenere il contrario
 
scelgo un corso in C e ottengo in B gli abbonamenti che hanno quel corso.
 
 
 
 


Ciao,
per aiutarti credo sia meglio che anche tu aiuti noi! :-)
Al seguente spazio gratuito potresti mettere un estratto del tuo db in
modo da capirci meglio?
http://skydrive.live.com/
 
Ciao Vladimiro


Immagino che il "corso" non e' presente sul form B (che deriva dagli 
abbonamenti)
Come ha gia' scritto Vladimiro un recordsource che derivi dai solo 
Abbonamenti non ti e' sufficiente.
 
Due strade:
1) Inserire una clausola /in/ (sconsigliata, e' lenta) su B con una 
subselect che estragga i codici abbonamenti da Corsi
2) Modificare dinamicamente il recordsource di B, facendolo derivare da 
una query su Abbonamenti+Corsi e filtrando per il corso presente in C.
Attenzione alla seconda poiche' potresti rischiare che il form B non sia 
piu' aggiornabile (se questo fosse richiesto)
 
 
-- 
 
ac (x=y-1)