Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Matrice di TextBox: Come inserire solo Numeri, maiuscole o minuscole in alcuni campi

Salve a tutti,
Il mio problema e' il seguente:
Ho una matrice di 11 TextBox collegati ai vari campi di un db. Vorrei fare
in modo che in alcuni campi si possano scrivere solo numeri, in altri si
possa scrivere solo maiuscolo ed in altri ancora, che si possa scrivere solo
minuscolo (ad es. nel campo dell'e-mail).
Mi potete aiutare a risolvere questo problemino? Grazie 1000.
Roberto.

 wrote in message
news:3v4O7.3768$NA1....@news2.tin.it...

Sull'evento keypress dei vari textbox:
Public Sub inputnumero(KeyAscii As Integer, locale As TextBox, controllo As
Control)
'inserimento e controllo di un valore numerico intero
'locale è la casella di testo corrente
'controllo è il comando successivo nella sequenza
'tabstop=false su tutti i controlli del form
Select Case KeyAscii
    Case vbKeyBack
'abilita il tasto <- (cancella)
    Case vbKeyReturn
       If Len(locale.Text) = 0  Then
            MsgBox "inserire un valore numerico"
            locale.SetFocus
       Else
            controllo.SetFocus
       End If
'se viene premuto invio fa un controllo su quello che c'e' scritto nella
casella:
'se il testo è vuoto  il controllo dà un segnale di errore e
'rimette il focus sul testo da correggere, altrimenti conferma l'inserimento
'passando il focus al comando successivo come da terzo argomento passato
(controllo as control)
    Case vbKeyTab
       If Len(locale.Text) = 0  Then
            MsgBox "inserire un valore numerico"
            locale.SetFocus
       Else
            controllo.SetFocus
       End If
'stessa cosa di sull'invio ma gestisce il comando tab... ma solo se tutti i
comandi
' selezionabili del form hanno la proprietà tabstop=false
      Case vbKey0 To vbKey9
'permette inserimento dei tasti numerici
    Case Else
        KeyAscii = 0
 'annulla tutto il resto
    End Select
End Sub
Inserimento maiuscole:
Sub inputmaiusc(KeyAscii As Integer, controllo As Control)
'permette l'inserimento di caratteri alfabetici e trasforma tutto in
maiuscolo
Select Case KeyAscii
Case Is >= 97 And KeyAscii <= 122
        KeyAscii = KeyAscii - 32
Case Is >= 65 And KeyAscii <= 90
Case vbKeyBack
Case vbKeyReturn
       If Len(locale.Text) = 0  Then
            MsgBox "Errore! Mancato inserimento!"
            locale.SetFocus
       Else
            controllo.SetFocus
       End If
Case vbKeyTab
  If Len(locale.Text) = 0  Then
            MsgBox "Errore! Mancato inserimento!"
            locale.SetFocus
       Else
            controllo.SetFocus
       End If
Case vbKeySpace
Case Else
    KeyAscii = 0
End Select
End Sub
Inserimento minuscole:
Sub inputminusc(KeyAscii As Integer, controllo As Control)
'permette l'inserimento di caratteri alfabetici e trasforma tutto in
maiuscolo
Select Case KeyAscii
Case Is >= 97 And KeyAscii <= 122
Case Is >= 65 And KeyAscii <= 90
            KeyAscii = KeyAscii + 32
Case vbKeyBack
Case vbKeyReturn
       If Len(locale.Text) = 0  Then
            MsgBox "Errore! Mancato inserimento!"
            locale.SetFocus
       Else
            controllo.SetFocus
       End If
Case vbKeyTab
  If Len(locale.Text) = 0  Then
            MsgBox "Errore! Mancato inserimento!"
            locale.SetFocus
       Else
            controllo.SetFocus
       End If
Case vbKeySpace
Case Else
    KeyAscii = 0
End Select
End Sub
Se lo devi usare per inserire un indirizzo Email devi aggiungere anche il
caso per il carattere "@"...
oppure dividere l'input in 2 textbox e poi incollare le due stringhe...
meglio contemplare il caso pero' :D
Ricorda che per un controllo efficace del comando TAB tutti i comandi
selezionabili nel form devono avere Tabstop=False
L'ultima sub l'ho fatta un po' a occhio modificando quella precedente, dimmi
se funziona.
Ciao, Claudio

 Sull'evento keypress dei vari textbox:
...Essendo una matrice di textbox  -TxtField(0), TxtField(1), TxtField(2),
ecc. ecc..- l'evento keypress e' unico per tutti. E' per quello che non
riesco a risolvere il problema.
Grazie comunque.
Roberto
P.s.: Ti chiedo scusa, ho sbagliato a fare il reply e ti ho risposto in
e-mail (tra l'altro ho usato l'email della ditta) Scusami ancora.

 wrote in message
vE6O7.34951$BA4.1...@news1.tin.it...


 riesco a risolvere il problema.
Nell'evento Keypress, fai una Select Case sull'Index.
Select case index
Case is 0
...
Case is 1
...
end select
Bye, G.

 wrote in message
news:vE6O7.34951$BA4.1...@news1.tin.it...
