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.