Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 01-08-2001, 19.24.28   #1
pina
Junior Member
 
Registrato: 26-03-2001
Messaggi: 129
pina promette bene
In visual Basic
Come faccio a fare apparire una msgbox quando l'utente inserisce dei dati sbagliati? Praticamente in un campo "data" se l'utente digita del testo deve apparire una finestra ke avverte ke l'utente ha digitato sbagliando!
Grazie
pina non è collegato   Rispondi citando
Vecchio 09-08-2001, 17.33.50   #2
emiliano
Newbie
 
Registrato: 19-02-2001
Messaggi: 31
emiliano promette bene
Non ricordo esattamente il nome della funzione ma ce ne deve essere una che fa tutto ciò, cioè se tu gli passi un testo, lui restituisce true se si può considerare una data, altrimenti false.
Si dovrebbe chiamare IsDate() o qualcosa del genere.
Ciao
Emiliano
emiliano non è collegato   Rispondi citando
Vecchio 09-08-2001, 20.44.07   #3
xegallo
Junior Member
 
L'avatar di xegallo
 
Registrato: 16-05-2001
Loc.: Padova
Messaggi: 58
xegallo promette bene
isdate () Restituisce un valore Boolean che indica se è possibile o meno convertire un'espressione in data
xegallo non è collegato   Rispondi citando
Vecchio 09-08-2001, 20.45.55   #4
xegallo
Junior Member
 
L'avatar di xegallo
 
Registrato: 16-05-2001
Loc.: Padova
Messaggi: 58
xegallo promette bene
x pina io credo che tu ti debba fare una funzione di controllo caratteri se mi dici come vuoi venga impostato la data ti posso aiutare
xegallo non è collegato   Rispondi citando
Vecchio 14-08-2001, 16.20.03   #5
xegallo
Junior Member
 
L'avatar di xegallo
 
Registrato: 16-05-2001
Loc.: Padova
Messaggi: 58
xegallo promette bene
prova a inserire questo codice in un modulo

Function delete(Stringa As String, Posizione As Integer) As String
' questa funzione cancella un carattere
If Posizione = 0 Then
del = ""
delete = del
Exit Function
End If
If Len(Stringa) = 0 Then
del = ""
delete = del
Exit Function
End If
lunghezza = Len(Stringa)
If Posizione = lunghezza Then
ccc = Mid(Stringa, 1, lunghezza - 1)
del = ccc
delete = del
Exit Function
End If
If Posizione < lunghezza Then
ccc = Mid(Stringa, 1, Posizione - 1)
vvv = Mid(Stringa, Posizione + 1)
del = ccc + vvv
delete = del
Exit Function
End If
If Posizione > lunghezza Then
del = -1
delete = del
Exit Function
End If
delete = del
End Function
Function ControlloData(Stringa As String, Posizione As Integer, Char As String) As Integer
'questa funzione controlla che nel campo testo venga scritta una data, dato un separatore
' per questa funzione è necessario sul form ci sia un'oggetto textbox e seguente routine di evento
'Private Sub [nomeOggetto]_Change()
'Dim data As String
'Dim pos As Integer
' data = [nomeOggetto].Text
' pos = [nomeOggetto].SelStart
' cntr = ControlloData(data, pos, "/")
' If cntr = -1 Then
' data = delete(data, pos)
' [nomeOggetto].Text = data
' [nomeOggetto].SelStart = pos
' End If
'
'End Sub
controllo = 0
On Error GoTo Hell
If Len(Stringa) > o Then
carattere = Mid(Stringa, Posizione, 1)
If Posizione = 0 Then
controllo = -1
'cursore sul primo carattere caratteri ammessi 0,1,2,3
ElseIf Posizione = 1 Then
If Asc(carattere) > 47 And Asc(carattere) < 52 Then
controllo = 0
Else
controllo = -1
End If
'cursore sul secondo carattere caratteri ammessi 0,1,2,3,4,5,6,7,8,9,
ElseIf Posizione = 2 Then
If Asc(carattere) > 47 And Asc(carattere) < 58 Then
controllo = 0
Else
controllo = -1
End If
'cursore sul terzo carattere l'unico carattere ammesso è quello designato da Char
ElseIf Posizione = 3 Then
If Asc(carattere) = Asc(Char) Then
controllo = 0
Else
controllo = -1
End If
'cursore sul quarto carattere caratteri ammessi 0,1
ElseIf Posizione = 4 Then
If Asc(carattere) > 47 And Asc(carattere) < 50 Then
controllo = 0
Else
controllo = -1
End If
'cursore sul quinto carattere caratteri ammessi 0,1,2,3,4,5,6,7,8,9
ElseIf Posizione = 5 Then
If Asc(carattere) > 47 And Asc(carattere) < 58 Then
controllo = 0
Else
controllo = -1
End If
'cursore sul sesto carattere l'unico carattere ammesso è quello designato da Char
ElseIf Posizione = 6 Then
If Asc(carattere) = Asc(Char) Then
controllo = 0
Else
controllo = -1
End If
'cursore sul settimo carattere caratteri ammessi 0,1,2,3,4,5,6,7,8,9
ElseIf Posizione = 7 Then
If Asc(carattere) > 47 And Asc(carattere) < 58 Then
controllo = 0
Else
controllo = -1
End If
'cursore sul ottavo carattere caratteri ammessi 0,1,2,3,4,5,6,7,8,9
ElseIf Posizione = 8 Then
If Asc(carattere) > 47 And Asc(carattere) < 58 Then
controllo = 0
Else
controllo = -1
End If
'cursore sul nono carattere caratteri ammessi 0,1,2,3,4,5,6,7,8,9
ElseIf Posizione = 9 Then
If Asc(carattere) > 47 And Asc(carattere) < 58 Then
controllo = 0
Else
controllo = -1
End If
'cursore sul decimo carattere caratteri ammessi 0,1,2,3,4,5,6,7,8,9
ElseIf Posizione = 10 Then
If Asc(carattere) > 47 And Asc(carattere) < 58 Then
controllo = 0
Else
controllo = -1
End If


End If
End If
ControlloData = controllo

Hell: controllo = -1
cotrollodata = controllo
Exit Sub
End Sub



speriamo vada bene
xegallo non è collegato   Rispondi citando
Vecchio 21-08-2001, 18.30.41   #6
LuFo
Newbie
 
L'avatar di LuFo
 
Registrato: 21-06-2001
Loc.: Alma Mater Tergeste
Messaggi: 49
LuFo promette bene
dunque, oltre al metodo di xegallo, io sfrutto questo sistema:

1) limitiamo il numero di caratteri immissibili nella textbox. Per la data ci bastano al massimo 10 caratteri tutti numerici con in più il separatore "/". Per questo si può benissimo utilizzare una funzione da richiamare poi nell'evento "Keypress" della TextBox.
Ecco la funzione:

Function ChkInput(vKeyAscii As Integer)
Dim StringD As String
StringD = "1234567890/"

If vKeyAscii = 8 Then ChkInput = vKeyAscii: Exit Function 'è il tasto di delete

If InStr(StringD, Chr(vKeyAscii)) = 0 Then
vKeyAscii = 0 'Non è presente nell'insieme quindi l'azzero
End If

ChkInput = vKeyAscii
End Function



Adesso crea l'evento KeyPress ed inserisci il richiamo alla funzione in questo modo:

Private Sub TxtBox_KeyPress(KeyAscii As Integer)
KeyAscii = ChkInput(KeyAscii, "N")
End Sub


In questo modo, noterai che se provi a scrivere un carattere non compreso nella stringa "1234567890/", non viene scritto nella TextBox.
Adesso per controllare se la data è corretta puoi eseguire il controllo nel momento dell'evento "LostFocus" della TextBox:

Private Sub TxtBox_LostFocus()
If TxtBox.Text = "" Then TxtBox.Text = Date: Exit Sub 'se il campo è vuoto inserisco la data odierna (opzionale)
If Len(TxtBox.Text) < 10 Or Not IsDate(TxtBox.Text) Then 'qui eseguo il controllo sulla lunghezza e sul formato della date
MsgBox "Inserire una data nel formato 'gg/mm/aaaa'", vbInformation, "Data non valida"
TxtBox.Text = ""
TxtBox.SetFocus
Exit Sub
End If
TxtBox.Text = DateValue(TxtBox.Text) 'questa funzione ordina la data in base alle impostazioni di sistema. Es.: se scrivo "10/20/2001" con le impostazioni dper la data di sistema su "gg/mm/aaaa", la funzione "DateValue" sistemerà la data in "20/10/2001"

Spero di esserti stato utile
___________________________________

Sono Mentecatto nel profondo!
:::Presidente del F.I.S.Ma.Chio. (Federazione Internazionale per la Salvaguardia della Mazza Chiodata)!:::
MSN: lufo53@hotmail.com
LuFo non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Orario GMT +2. Ora sono le: 11.47.43.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.