• Domingo 17 de Noviembre de 2024, 20:50

Autor Tema:  Validacion de numeros y de fechas  (Leído 2207 veces)

mi1909

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Validacion de numeros y de fechas
« en: Miércoles 24 de Marzo de 2010, 04:47 »
0
Hola gente soy nueva en esto, tengo dudas con las siguentes funciones no se bien como trabajan cada una (se que una valida numeros y la otra valida fechas) si alguien seria tan amable de explicarme la funcion de cada una. Muchas gracias




 Private Sub txtnum_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtnum.KeyPress
        Select Case Asc(e.KeyChar)
            Case 4, 24, 4, 19, 127, 13, 9, 15, 14
                Exit Sub
        End Select
        If IsNumeric(e.KeyChar) = False Then
            MsgBox("Este carater no es un numero ( " + e.KeyChar + " )", vbCritical, "Importante")
            e.KeyChar = ""
        End If
    End Sub



    Private Sub txt_fecha_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtfec.Validated
        If IsDate(sender.Text) Then
            If Not sender.Text = Format(CDate(sender.text), "dd/mm/yyyy") Then
            Else
                MsgBox("Fecha invalida", vbOKOnly + vbCritical, "Atención")
                sender.Focus()
                Exit Sub
            End If
        Else
            MsgBox("Fecha invalida", vbOKOnly + vbCritical, "Atención")
            sender.Focus()
            Exit Sub
        End If
    End Sub

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: Validacion de numeros y de fechas
« Respuesta #1 en: Viernes 2 de Abril de 2010, 02:55 »
0
Para que solo te lea numeros yo utilizo este:
Código: vb.net
  1.  
  2. Private Sub txtValorpos_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtValorpos.KeyPress
  3.         If Char.IsDigit(e.KeyChar) Then
  4.             e.Handled = False
  5.         ElseIf Char.IsControl(e.KeyChar) Then
  6.             e.Handled = False
  7.         Else
  8.             e.Handled = True
  9.         End If
  10.     End Sub
  11.  
  12.  

Si entiendes que estas en el "evento" KeyPress de un Textbox?...

bueno, lo segundo es el IF que es un condicional, donde utilizas un "Char", que es miembro de  "System" su definición es: Representa un carácter Unicode, es decir UN simple y común carácter.. y llamas a la función IsDigit, que si te das cuenta esta declarado como un Booleano, es decir que va a retornar un "True" o un "False" y  si te das cuenta le pasas un parámetro (e.KeyChar) que es el "caracter" que hayas presionado, por caracter entiende que puede ser hasta un ENTER, LETRAS, NUMEROS, SHIFT, CTRL, ALT.. entonces lo que hace el IF es decir.. "Si e.KeyChar es un Digito o Si e.KeyChar es un control entonces No me manejes el evento (e.Handled = false)"..  en caso contrario.. (es decir si son letras), Maneja el evento con un True para que no lo dejes que el usuario pueda teclearlo". Si te preguntas.. por que dejamos pasar los caracteres de tipo control, es que podriamos usar un "enter".. si me vas entendiendo?.. espero que sí.. jejjejeje..

Tu otro evento.. de las fechas, es LO MISMO..

Código: vb.net
  1. Private Sub txt_fecha_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtfec.Validated
  2. If IsDate(sender.Text) Then
  3. If Not sender.Text = Format(CDate(sender.text), "dd/mm/yyyy") Then
  4. Else
  5. MsgBox("Fecha invalida", vbOKOnly + vbCritical, "Atención")
  6. sender.Focus()
  7. Exit Sub
  8. End If
  9. Else
  10. MsgBox("Fecha invalida", vbOKOnly + vbCritical, "Atención")
  11. sender.Focus()
  12. Exit Sub
  13. End If
  14. End Sub
  15.  
  16.  

Solo que aquí llamas
a IsDate, para que entiendas como funciona IsDate te recomiendo que entres a aquí: h ttp://msdn.microsoft.com/es-es/library/ ... 80%29.aspx , te lo explica más fácil.
pero practicamente es lo mismo..  solo que ademas del IsDate.. tu le pides que tiene que estar en un Determinado formato aquí:

If Not sender.Text = Format(CDate(sender.text), "dd/mm/yyyy") Then , es decir que tiene que estar en el formato "dd/mm/yyyy" dia, mes y año.

SI NO tiene ese formato entonces tampoco te lo detectará como fecha.. :).. es todo.. si tienes alguna otra duda.. puedes seguir preguntando.. saludos! :)
@gabio87

mi1909

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Validacion de numeros y de fechas
« Respuesta #2 en: Lunes 5 de Abril de 2010, 15:54 »
0
Muchisimas gracias gabi2, la verdad me ayudaste un monton. Saludos

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: Validacion de numeros y de fechas
« Respuesta #3 en: Lunes 5 de Abril de 2010, 17:12 »
0
No hay de que, por cierto es Gabio2 :D jejeje.. suerte byez! :)
@gabio87