Forms

3.102 Accettare che in una casella di testo di una maschera vengano digitate solo lettere dell'alfabeto o il carattere punto
  Roberto, Alessandro Baraldi

In un modulo del database memorizzare la seguente funzione:
Public Function CkDgtWord(KeyAscii As Integer) As Integer
   CkDgtWord = 30
   If ((KeyAscii >= 65 And KeyAscii <= 90) Or (KeyAscii >= 97 And KeyAscii <= 122)) Then CkDgtWord = KeyAscii
   Select Case KeyAscii
      Case vbKeyBack, vbKeyTab, vbKeyClear, vbKeyReturn, vbKeyShift
         CkDgtWord = KeyAscii
      Case vbKeyEscape, vbKeySpace, vbKeyDelete, vbKeyNumlock
         CkDgtWord = KeyAscii
   End Select
End Function
Richiamando tale funzione a fronte dell'evento "Su pressione" del controllo della maschera in cui si debbono poter digitare solo lettre dell'alfabeto minuscole o MAIUSCOLE o il carattere punto (.), è possibile impedire che vengano digitati altri caratteri.
Se ad esempio si desidera che in una casella di testo chiamata MiaCasella sia possibile digitare solamente lettere dell'alfabeto minuscole o MAIUSCOLE o il carattere punto (.), a fronte dell'evento "Su pressione" di tale controllo si deve generare il seguente codice VBA:
Private Sub MiaCasella_KeyPress(KeyAscii As Integer)
KeyAscii = CkDgtWord(KeyAscii)
End Sub
Non esistendo una funzione nativa del tipo IsAlphabetic, questa è una valida alternativa alla verifica di quanto in oggetto.


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.