Newsgroup: it.comp.appl.access
Titolo: uso di interruttore in una maschera

ho una maschera dove registro le attività dei soci di una
associazione. uno dei dati inserito nella maschera è il nome del socio
attraverso una casella combinata. la casella combinata di default
seleziona solo alcuni soci attraverso una query messa in origine riga.
in alcuni casi mi trovo nella necessità di cambiare questa origine
riga ampliando l'insieme dei soci selezionabili. avevo pensato di fare
questo attraverso un interruttore: se l'interruttore non è premuto
(default) viene selezionato l'insieme dei soci "ristretto", se
l'interruttore è premuto viene visualizzato l'insieme dei soci
allargato.
il codice VBA per realizzare questo l'ho rimediato:
Me!idSocio.RowSource = "SELECT <gruppo allargato>" (ho omesso tutta le
query per motivi di lunghezza)
Me!idSocio.Requery
il mio problema è: in quale evento associato all'interruttore devo
metterlo? se lo metto in pulsante giù non funziona, se lo metto in
clik funziona ma poi non ottengo il "doppio stato"
forse non è giusto usare un interuttore per queste cose? come posso
fare?
grazie! :)

 ha scritto nel messaggio
news:1118129428....@g44g2000cwa.googlegroups.com...

Io a fronte dell'evento "Dopo aggiornamento" dell'interruttore genererei un
codice VBA di questo tipo:
If Me!MioInterruttore = True Then
    Me!idSocio.RowSource = "SELECT <gruppo allargato>"
Else
    Me!idSocio.RowSource = "SELECT <gruppo ristretto>"
End If
Tale codice dovrai generarlo anche a fronte dell'evento "Su corrente" della
maschera.
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------

ottima idea! grazie mille! stasea ci provo!

ok, vista la tua gentilezza ti sottopongo un altro piccolo problema che
mi si presenta ora.
supponiamo che abbia premuto il pulsante per avere il gruppo
"allargato" e abbia selezionato il nome di un socio che fa parte del
gruppo "allargato" ma non del "ristretto". a questo punto mi accorgo di
avere sbagliato e ripremo il pulsante in modo da tornare al gruppo
"ristretto". vorrei fare in modo che il socio che avevo scleto in
precedenza venisse cancellato dalla casella combinata in quanto non
rispetta più il criterio "appartiene al gruppo ristretto" (magari un
per disattenzione conferma i dati e sbaglia).
ho provato ad aggiungere all'evento "after update" del mio pulsante un
istruzione del tipo:
Me!idSocio.Value = NULL
ma purtroppo da errore in quanto il campo in questione è marcato come
"richiesto" (questa cosa è alquanto stupida, questo genere di
controllo dovrebbe farlo quando confermo i dati uscendo dalla maschera
e non quando li sto ancora modificando...)

come non detto! sono un pirla! access si preoccupa già di pulire la
casella combinata quando modifico l'origine dati!
:)

 ha scritto nel messaggio
news:1118164279....@g14g2000cwa.googlegroups.com...

Non sono sicuro di aver capito questo tuo problema, comunque prova a fare un
requery della casella combinata dopo aver impostato la sua origine riga,
ovvero:
If Me!MioInterruttore = True Then
    Me!idSocio.RowSource = "SELECT <gruppo allargato>"
    Me!diSocio.Requery
Else
    Me!idSocio.RowSource = "SELECT <gruppo ristretto>"
    Me!diSocio.Requery
End If
