Newsgroup: it.comp.appl.access
Titolo: caratteri minimi

salve a tutti
vorrei obbligare l'utente ad inserire in un campo un numero minimo di
caratteri (10) che poi corrisponde alla lunghezza massima
quindi in un campo testo di 10 caratteri, obbligare l'utente ad
inserire 10 caratteri esatti, non uno di meno 
come posso fare?
grazie a tutti
nicola


Usa la proprietà Maschera di Input o Inputmask da VBA...!
Se il numero è sempre e solo POSITIVO se metti in questa proprietà 10
ZERI...
0000000000
vedrai che il campo ti obbligherà ad inserire 109 numeri...
Nell'Help trovi le combinazioni e le spiegazioni delle formattazioni.
@Alex



grazie per la risposta!
ho usato quello che mi dici però ho messo AAAAAAAAAA invece di
0000000000
perchè il campo è alfanumerico
con le 10 "A" non funziona....ora provo con gli zeri.....


Con A deve funzionare, viene usato anche per l'autocomposizione del
CodiceFiscale nel Wizzard...!
Hai scritto così:
AAAAAAAAAA;
@Alex

 wrote:

per l'esattezza così:
AAAAAAAAAA;;_
ho modificato l'elenco proposto e ho inserito questo nuovo tipo di
input
con gli zeri mi accetta solo numeri
ora provo come mi hai scritto
grazie

 wrote:

niente...non funziona come hai scritto e nemmeno così
AAAAAAAAAA;;_
continua ad accettare anche meno di 10 caratteri
che faccio?

 wrote:

non so se può entrarci qualcosa.....
il campo che sto cercando di valorizzare è una casella combinata che
accetta anche valori non in elenco

 ha scritto nel messaggio 
news:2vvad3hf9lij7h3ft...@4ax.com...

il problema non è il valore non in elenco; tu dove inserisci questa stringa 
AAAAAAAAAA;;_?
-- 
Ciao
Access 



ciao,
l'ho inserita in "maschera di input" del campo in questione
ho provato sia AAAAAAAAAA;;_ che AAAAAAAAAA;
il risultato non cambia :-(

 ha scritto nel messaggio 
news:8qqcd39sml293k6k9...@4ax.com...

Scusa ma il risultato non cambia cosa vuol dire che tu inserisci 5 caratteri 
e ti fa uscire dal controllo?
Questo succede anche su altri controlli,hai provato?
-- 
Ciao
Access 

Ciao,


esattamente,
mi accetta anche un inserimento di 5 caratteri o qualsiasi altro
numero (non più di 10 perchè il campo nella tabella è testo con
lunghezza 10)
non ho provato su altri controlli...provo e riscrivo
la versione di access è quella di XP con SP3

 ha scritto nel messaggio 
news:1qgad3lfvvq66p76g...@4ax.com...

Togli la maschera di input e per esempio usa questo:
Private Sub TuaCombo_Click()
If Len(Me.TuaCombo) = 10 Then
Exit Sub
Else
MsgBox "Inserire 10 caratteri"
Me.TuaCombo = ""
End If
End Sub
Ciao, Carlo 



grazie 1000,
ciao

 wrote:

OK, funziona.....un altro aiutino...
il codice che mi hai suggerito l'ho inserito "in uscita" dalla mia
combo
ho sostituito nella parte finale Me.TuaCombo = "" con
Me!TuaCombo.setfocus
perchè non desidero cancellare quello che contiene ma voglio comunque
obbligare a correggere l'inserimento
di fatti però il setfocus non funziona; il cursore si sposta comunque
nel campo successivo
ti allego il mio codice per chiarezza:
(Codice è la mia TuaCombo)
-----------------------
If Len(Me.Codice) = 10 Then
    Me!PATH = "E:\" + Codice + VERS + TipoCN + FASE + "." + ESTEN
    Me!ute = [Forms]![INSERIMENTO]![loggedin]![UTENTE]
Else
    MsgBox "Il campo codice deve essere di 10 caratteri!", vbCritical,
"ATTENZIONE:"
    Me!Codice.SetFocus
End If
-----------------------
grazie

 End If
end sub
-- 
Ciao
Access 


Ci sono 2 considerazioni da fare:
1) Credo che usando l'evento LostFocus dovrebbe diventare così:
2) E' bene usare la proprietà Text in questi casi che risulta sempre
corretta.
If Len(Me.Codice.Text) = 10 Then
    Me!PATH = "E:\" + Codice + VERS + TipoCN + FASE + "." + ESTEN
    Me!ute = [Forms]![INSERIMENTO]![loggedin]![UTENTE]
Else
     MsgBox "Il campo codice deve essere di 10 caratteri!",
vbCritical, "ATTENZIONE:"
     Screen.PreviousControl.SetFocus
 End If
@Alex


ti sposti prima ad un altro controllo e poi ritorni al precedente:
Me.TuoControllo2.SetFocus
Me.TuaCombo.SetFocus
Ciao, Carlo 



grazie a tutti!!!
la soluzione è stata questa...mescolando un po' tutti voi :-)
----------------------
If Len(Me.Codice.Text) = 10 Then
    Me!PATH = "E:\" + Codice + VERS + TipoCN + FASE + "." + ESTEN
    Me!ute = [Forms]![INSERIMENTO]![loggedin]![UTENTE]
Else
    MsgBox "Il campo codice deve essere di 10 caratteri!", vbCritical,
"ATTENZIONE:"
    Me!Prodotto.SetFocus
    Me!Codice.SetFocus
End If
non ho potuto utilizzare
Screen.PreviousControl.SetFocus
perchè mi rimandava al primo campo che non corrisponde a "Codice"
spero un giorno di poter essere utile a qualcuno anche per una decima
parte di quanto voi lo siete per me!!!
grazie ancora
Nicola