Newsgroup: it.comp.appl.access
Titolo: Limiti di testo su controlli TextBox

Salve ragazzi,
quale proprieta' devo utilizzare per limitare il numero di caratteri
che e' possibile inserire in una casella di testo di una maschera?
Non riesco a trovarla.
Grazie in anticipo.
 
--
Cordialmente,
Danilo!
* Per risposte in e-mail elimina "-rimuovi" dall'indirizzo *

 ha scritto nel messaggio
news:397f35b9$1@news...

La proprietà "Maschera di input" della tua casella di testo
Roberto

La proprietà "Maschera di input" della tua casella di testo
Si, quella la conosco, però permette di impostare una vera e propria
formattazione completa al testo del controllo. Nel mio caso però
introduce certi limiti nella libertà di movimento all'interno della
textbox.
A me serve semplicemente limitare il numero massimo di caratteri
immessi lasciando però la formattazione di default.
La formattazione più vicina alla "libera digitazione" sarebbe:
CCCCCCCC;;" "
ma non mi soddisfa per via di quello spazio che si evidenzia e
inoltre non mi consente l'uso normale del tasto CANC.
Possibile che non ci sia una proprietà apposita?
Grazie.


Possibile che non ci sia una proprietą apposita?
non credo.  potresti intervenire sulle proprieta' del campo della
tabella cui eventualmente e' collegato il controllo, oppure
controllare la len() del contenuto del controllo all'evento
onkeypress.
--
make it idiot proof and someone will make a better idiot.
--
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/

onkeypress.
Non essendo collegato a nessun campo tabella alla fine ho optato
proprio per la gestione dell'evento KeyPress in questo modo:
Private Sub Testo5_KeyPress(KeyAscii As Integer)
    If Len(Me.Testo5.Text) >= 5 And KeyAscii > 32 Then DoCmd.CancelEvent
End Sub
Credo sia l'unica maniera anche se ancora non riesco a darmi pace
del fatto che non esista una proprietà così semplice e scontata.
Con tante textbox è davvero una rottura. Pazienza.
Grazie e alla prossima...





Un'altra via è quella di definire l'ampiezza del campo nella struttura della
tabella; come ti ha suggerito lbo. Ti dirò che è anche la via più semplice
da "gestire", perché se hai impostato n maschere con n caselle di testo e
hai anche impostato per ognuna la loro sub con il controllo della lunghezza;
se per caso sei stato troppo avaro o troppo generoso che fai? Modifichi
tutte le maschere con relativo codice di ogni casella da testo? Nooo... Vai
nella struttura della tabella e lì modifichi il valore! Pensaci...
Ciao.

tutte le maschere con relativo codice di ogni casella da testo?
Già, questa è la più comoda delle soluzioni, decisamente.
Il fatto è che di solito non collego i campi delle maschere direttamente
ai campi di una tabella ma gestisco manualmente, tramite codice,
il rimpiemento dei relativi campi. Questo per avere una maggiore
libertà (ed anche perchè è un retaggio del mio passato di programmatore)
nella gestione dei controlli.
A questo punto potrei poprio porre in discussione la seguente questione:
è meglio lavorare su maschere direttamente collegate a tabelle
e quindi sfruttare la gestione di access per l'accesso ai record
oppure fare tutto a mano con le librerie ADO, DAO o quello che
sia? Io prefersico di granlunga la seconda soluzione anche se più
"dispendiosa".


modifichi il valore! Pensaci...
Puntualmente si è verificato quanto hai detto. Per fortuna ho reso
il controllo della lunghezza dinamico, in questa maniera:
Private Sub Cognome_KeyPress(KeyAscii As Integer)
    If Len(Me.Cognome.Text) >= rsClienti.Fields("Cognome").DefinedSize
And KeyAscii > 31 Then DoCmd.CancelEvent
End Sub
In questo modo il confronto è fatto direttamente con la lunghezza
del campo tabella.
E' sorto però un'altro problema. Fino a quando inserisci i valori
nelle textbox premendo i tasti è tutto ok. Ma se percaso fai un
"incolla" nel campo, rischi di eccedere le dimensioni del campo
tabella, per cui è potenzialmene a rischio.
Mmmm... vedrò come fare per risolvere...
--
Cordialmente,
Danilo!
* Per risposte in e-mail elimina ".rimuovi" dall'indirizzo *

tabella; come ti ha suggerito lbo. Ti dirň che č anche la via piů semplice
eh, ma il controllo non č collegato...
-------------------------------------
"You're part of the humanity!"
"No, I'm in the marketing."
(tratta da 
www.dilbert.com
)


Già quando pensi di aver previsto tutto...
Ciao e buon lavoro.