Newsgroup: it.comp.appl.access
Titolo: Bloccare alcune caselle di testo in una sottomaschera

Buonasera a tutti:
Vi ringrazio anticipatamente per l'aiuto che eventualmente mi darete,
e passo a esporvi il problema:
Ho una sottomaschera (composta a maschere continue) di cui devo
rendere inaccessebili alcune caselle di testo (visibili si, ma
accessibili no), a seconda che esse rispondano o no a certi criteri
(per questa ultima cosa non  c'è problema: ho già la scritto la
routine)
Sto usando il VBA e mi sono un attimo incaponito con enabled and
locked, ma per il momento i risultati sono scarsi ... come posso
fare ? Qualcuno ha qualche idea ?
Per qualsiasi ulteriore spiegazione, non esitate a chiedere ...
Alla peggio, rendere inaccessibile l'intero record di cui fa parte la
casella di testo della sottomaschera, sarebbe anche una
soluzione ....
Grazie anticipatamente a tutti !!!!

 ha
scritto:

Non si capisce bene cosa intendi con "scarsi risultati", comunque:
il problema che di solito si incontra con le maschere continue nel
fare ciò che richiedi, risiede nel fatto che quando alteri le
proprietà di un controllo di una determinata riga, per esempio quella
corrente, in realtà imposti la proprietà per tutte le righe contenute
nel form.
Per spiegare meglio, se in base al verificarsi di una certa condizione
sul contenuto del record corrente imposti la proprietà BackColor di
una casella di testo di una form continua a Rosso, lo sfondo di quella
casella diventa rosso per tutte le righe della form e non solo per
quella su cui si è verificata la condizione.
Però per il caso dell'abilitazione/disabilitazione di solito questo
comportamento può essere aggirato abilitando/disabilitando i controlli
della riga nell'evento SuCorrente della form.
In questo modo, se per esempio un controllo viene disabilitato perchè
la riga corrente verifica una certa condizione, in realtà quel
controllo viene disabilitato su tute le righe.
Però non te ne accorgi, perchè non appena ti sposti su una riga dove
la condizione non è verificata, nell'eseguire l'evento SuCorrente il
controllo verà riabilitato.
Basta avere l'accortezza di prevedere nel codice che scriverai sia
l'abilitazione sia la disabilitazione dei controlli.
Insomma qualcosa del tipo:
Sub Form_Current()
If Condizione = True then
   TuoControllo.Enabled=False
   TuoControllo.Locked=True
Else
   TuoControllo.Enabled=True
   TuoControllo.Locked=False
EndIf
End Sub
Se il tuo problema non è questo, spiega meglio cosa vuoi ottenere e
dacci maggiori dettagli sulla struttura della maschera e delle
condizioni che possono verificarsi.

 - Mostra testo tra virgolette -
Scusa se ci ho messo un po' a rispondere ma sono stato un attimo
impegnato: la tua soluzione è ottima e, modificando il codice che
avevo scritto per per farla mettere in atto, sono riuscito a far
funzionare il tutto ... ho anche visto provato, così, a cambiare lo
sfondo della casella di testo, ma ahimè cambiano anche tutti gli
altri. Premesso che va bene, anzi benissimo così, non sai (o qualcuno
sa magari) se è possibile far sì che venga bloccata una singola
casella di esto di una sottomaschera e non una alla vota ?
Grazie comunque (ripeto, la soluzione è compleatamente funzionale, e
anzi ho preso spunto e la ho utilizzata anche per altri casi meno
complessi .... ma io passo per un precisino ... ;-))

complessi .... ma io passo per un precisino ... ;-))
Vincenzo Turturro
---------------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com/
---------------------------------------------
E quello di it.comp.as400
http://www.faq400.com/
---------------------------------------------