Newsgroup: it.comp.appl.access
Titolo: bloccare controlli in una maschera

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

 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
---------------------------------------------

 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

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


 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.


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] 
