--bò se avete altro--
Ancora non riesco ad eseguirlo, quindi non dico niente sul funzionamento, ma qualcosa sul codice. Questa, per esempio, cosi' com'e', sembra gridare per il dolore, ed essendo a occhio la funzione che tutto dovrebbe controllare, mi perplime assai: 1) Gli eventi si fermano quando la funzione restituisce un valore, non genericamente in un modulo 2) La funzione deve restituire un valore sempre 3) A occhio alcune regexp sono duplicate 4) Se l'obiettivo e' stabilire se un contenuto e' numero o meno, esiste anche isnumber()
Public Function Filtro(stringa As String)
If key.Text Like "[^0-9.,-]" Then
Stop Event
Endif
If Key.Text = "." Then
If ricerca(stringa, ".") = 1 Then
Stop Event
Endif
Endif
If Key.Text = "-" Then
If ricerca(stringa, "-") = 1 Then
Stop Event
Endif
Endif
If Key.Text = "," Then
If ricerca(stringa, ".") = 1 Then
Stop Event
Endif
Endif
Select Case Key.Text
Case "è", "é", "ò", "ç", "à", "°", "ù", "§", "£", "ì", "€", "¹", "²", "³", "¼", "½", "¬", "ł"
Stop Event
End Select
End
A proposito, anche 5) La funzione ricerca restituira' un valore, ma perche' 1? Se non vuoi ci sia un duplicato, ti basta controllare che non siano, appunto, in due dopo l'inserimento... Tipo
Public Function ricerca(testo As String, lettera As String) As boolean
If instr(testo,lettera) <> rinstr(testo,lettera) then
return true
else
return false
endif
End
Poi, magari non ci ho capito niente io, eh.
Imho comunque dovresti controllare l'immissione nella textbox per evitare un milione di problemi poi.