SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: neorent en Miércoles 7 de Diciembre de 2005, 16:53
-
hola a todos:
tengo una serie de textbox en donde se ingresan las horas de trabajo, y necesito validar que la hora ingresada es correcta como por ej. formato
13:30
09:30
pero que no ingrese
25:64
008:98
no se si se entiende si alguien puede echarme la mano con esto esaria muy agradecido que esten muy bien y un saludo a todos bye
-
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
sHora = Text1.Text
If EsHora(sHora) = True Then
'CODIGO CUANDO LA HORA ES CORRECTA
Else
MsgBox "Hora incorrecta", vbInformation, "Advertencia"
Text1.Text = ""
Text1.SetFocus
End If
End If
End Sub
Public Function EsHora(ByVal LaHora As String) As Boolean
'Verifica que tenga el separador de hora y minutos
EsHora = False
pos = InStr(LaHora, ":")
If pos > 0 Then
'Obtengo la Hora
sHora = Mid(LaHora, 1, pos - 1)
'Obtengo los minutos
sMinutos = Mid(LaHora, pos + 1, Len(LaHora) - pos + 1)
'Verifico que sean numericos la Hora y Minutos
If IsNumeric(sHora) And IsNumeric(sMinutos) Then
'Valido el rango de las horas
If CDbl(sHora) >= 0 And CDbl(sHora) <= 23 Then
'Valido el rango de los minutos
If CDbl(sMinutos) >= 0 And CDbl(sMinutos) <= 59 Then
EsHora = True
End If
End If
End If
End If
End Function
-
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
sHora = Text1.Text
If EsHora(sHora) = True Then
'CODIGO CUANDO LA HORA ES CORRECTA
Else
MsgBox "Hora incorrecta", vbInformation, "Advertencia"
Text1.Text = ""
Text1.SetFocus
End If
End If
End Sub
Public Function EsHora(ByVal LaHora As String) As Boolean
'Verifica que tenga el separador de hora y minutos
EsHora = False
pos = InStr(LaHora, ":")
If pos > 0 Then
'Obtengo la Hora
sHora = Mid(LaHora, 1, pos - 1)
'Obtengo los minutos
sMinutos = Mid(LaHora, pos + 1, Len(LaHora) - pos + 1)
'Verifico que sean numericos la Hora y Minutos
If IsNumeric(sHora) And IsNumeric(sMinutos) Then
'Valido el rango de las horas
If CDbl(sHora) >= 0 And CDbl(sHora) <= 23 Then
'Valido el rango de los minutos
If CDbl(sMinutos) >= 0 And CDbl(sMinutos) <= 59 Then
EsHora = True
End If
End If
End If
End If
End Function
wow te pasaste esta super bueno y funciona a la perfeccion
muchisimas gracias que estes bien adios
-
:lightsabre: :lightsabre: Muchas gracias pense que no lo iba a utilizar, pero llego el momento y me sirvio ene, muchas gracias al creador, para algunos decirles que las variables shora y sminutos tienen que ser string y el pos integer.
es un form
------------
Private Sub Cj_HoraInicio_Validate(Cancel As Boolean)
Cancel = True
If EsHora(Cj_HoraInicio) = True Then
'CODIGO CUANDO LA HORA ES CORRECTA
Cancel = False
Cj_HoraTermino.SetFocus
Call MarcaTodo(Cj_HoraTermino)
Exit Sub
Else
Call Mensajes(29)
Call MarcaTodo(Cj_HoraInicio)
End If
End Sub
en un modulo bas
---------------------
Public Function EsHora(ByVal LaHora As String) As Boolean
'Verifica que tenga el separador de hora y minutos
Dim Pos As Integer, SHora As String, SMinutos As String
EsHora = False
Pos = InStr(LaHora, ":")
If Pos > 0 Then
'Obtengo la Hora
SHora = Mid(LaHora, 1, Pos - 1)
'Obtengo los minutos
SMinutos = Mid(LaHora, Pos + 1, Len(LaHora) - Pos + 1)
'Verifico que sean numericos la Hora y Minutos
If IsNumeric(SHora) And IsNumeric(SMinutos) Then
'Valido el rango de las horas
If CDbl(SHora) >= 0 And CDbl(SHora) <= 23 Then
'Valido el rango de los minutos
If CDbl(SMinutos) >= 0 And CDbl(SMinutos) <= 59 Then
EsHora = True
End If
End If
End If
End If
End Function
gracias te pasaste adjunte el codigo, x cualquier cosa.