Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

bloccare controlli in una maschera

349 views
Skip to first unread message

Antonio Di Marco

unread,
May 2, 2001, 12:37:28 PM5/2/01
to
Come potrei da codice, e a fronte di quale evento, disabilitare alcuni
controlli in una maschera in base al valore scelto da una casella combinata
? Cioè ad esempio "casella combinata = 1" allora controllo 1 abilitato ma
controllo 2 no, "casella combinata = 2" controllo 1 non abilitato ma
controllo 2 abilitato ?

Grazie

Antonio


Roberto dal portatile

unread,
May 2, 2001, 1:20:04 PM5/2/01
to

"Antonio Di Marco" <dyma...@tiscalinet.it> ha scritto nel messaggio
news:9cpd6s$cvl$1...@pegasus.tiscalinet.it...

Da quello che racconti sembrerebbe a fronte dell'evento "Dopo aggiornamento"
della casella combinata.

Il codice VBA dovrebbe essere:

If Me!CasellaCombinata = 1 Then
Me!Controllo1.Enabled = True
Me!Controllo2.Enabled = False
Else
Me!Controllo1.Enabled = False
Me!Controllo2.Enabled = True
End If

--

Roberto

---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Marco Manieri

unread,
May 2, 2001, 1:38:15 PM5/2/01
to
> Come potrei da codice, e a fronte di quale evento, disabilitare alcuni
> controlli in una maschera in base al valore scelto da una casella
combinata
> ? Cioè ad esempio "casella combinata = 1" allora controllo 1 abilitato ma
> controllo 2 no, "casella combinata = 2" controllo 1 non abilitato ma
> controllo 2 abilitato ?

Devi utilizzare l'evento AfterUpdate (DopoAggiornamento) del controllo
impostando le propietà Enabled.

Esempio

Private Sub casella_combinata1_AfterUpdate ()

if me.casella_combinata1 = 1 then
controllo1.enabled = true
controllo2.enabled = false
else
controllo1.enabled = false
controllo2.enabled = true
endif
end sub

Marco Manieri

--
Posted from [212.104.50.1]
via Mailgate.ORG Server - http://www.Mailgate.ORG

Antonio Di Marco

unread,
May 2, 2001, 3:06:46 PM5/2/01
to
Le vostre soluzioni funzionano però dato che il codice è inserito in una
sottomaschera che visualizza più record, quando dal codice viene bloccato il
controllo 1 vengono bloccati tutti i "controlli 1" di tutti i record che sto
visualizzando nella sottomaschera. Invece io vorrei che fosse disabilitato
solo quello relativo al record corrente, in modo da non poter accedere ed
inserire errate informazioni. Esiste un modo per fare questo ? Inoltre
supponendo che se "casella combinata =1" controllo 1 deve essere
disabilitato, e se "casella combinata =2" controllo 1 deve essere abilitato,
se il primo record della sottomaschera ha come valore della casella
combinata 1 ma nel record seguente le assegno il valore 2, sbloccando tutti
i controlli io potrei teoricamente andare a modificare il valore del
controllo 1 del primo record che invece deve essere bloccato, non so se sono
stato chiaro.

Grazie per l'eventuale approfondimento

Roberto da casa

unread,
May 2, 2001, 6:34:51 PM5/2/01
to

"Antonio Di Marco" <dyma...@tiscalinet.it> ha scritto nel messaggio
news:9cpm0g$h62$1...@pegasus.tiscalinet.it...

Ti saremmo tutti grati se risponderai dopo e non prima dei messaggi
precedenti.

Non avevi detto che stavi operando con una maschera con visualizzazione a
Maschere continue, e giacchè né io e né Marco abbiamo la sfera di
cristallo.....

Modifica il codice VBA in :

If Me!CasellaCombinata = 1 Then
Me!Controllo1.Enabled = True

Me!Controllo1.Locked = False
Me!Controllo2.Enabled = False
Me!Controllo2.Locked = True
Else
Me!Controllo1.Enabled = False
Me!Controllo1.Locked = True
Me!Controllo2.Enabled = True
Me!Controllo2.Locked = False
End If

Così i controlli non abilitati non diventeranno grigi, evitando un problema
antiestetico.
Genera tale codice VBA, oltre che a fronte dell'evento "Dopo aggiornamento"
della casella combinata, anche a fronte dell'evento "Su corrente" della
sottomaschera. Poichè il record corrente è uno solo alla volta il problema
non si pone, naturalmente a condizione che la casella combinata sia
associata ad un campo della tabella che è origine record della
sottomaschera; se invece la casella combinata non è associata, non ho
soluzioni da darti, visto che tutte le caselle combinate visualizzate o
assumono tutte il valore 1 o tutte il valore 2.

Antonio Di Marco

unread,
May 3, 2001, 6:28:17 AM5/3/01
to
Scusate se ho postato prima ma intendevo rispondere a Roberto.
Il tuo codice è giusto, anche se il fatto che le caselle diventano grigie
per me sarebbe stato anche positivo.
Grazie mille

Antonio


--
Posted from mail.unifi.it [150.217.1.31]

0 new messages