none
validar antes de guardar RRS feed

  • Pregunta

  • hola masters

    mi problema es que yo valido en el evento keyspress cada campo por independiente y lo que quiero hacer es validar en grupo

    mi duda es la siguiente yo quisiera validar los campos que sean correctos que ingreso la informacion necesaria y debida por ejemplo en x campo si ahi es para letras que asi sea si es para numeros que asi sea si checkeo un radio o un checked que lo valide y si cojio un item del combo pues que tambien lo valide.  pero esto juusto antes de guardar. si uno de ellos le falta ingresar un dato o chequearlo o elejirlo o o que ese dato no es correcto le cambie el color a todos los campos que faltan por completar y ya luego si permita guardar en visual basic 2008

    gracias

    viernes, 29 de abril de 2011 21:57

Respuestas

  • hola

    el tema es que ahs enredado bastante el codigo

    si solo quieres detecta el enter en el textbox

     

    [ADO.NET] Parte 5 - Ejemplos Simples Operaciones CRUD

    podrias ser algo como esto

     

    Private Sub txtidentificacion_cli_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtidentificacion_cli.KeyPress
        Try
               
            If e.KeyChar = Convert.ToChar(Chr(13)) Then
                If Trim(txtidentificacion_cli.Text) = "" Then
                    MessageBox.Show("Digite Por Favor El Numero De Documento o Nit Por Favor")
                    Return
                End If
               
                    DataSet ds = oclientes.consultar_cliente(txtidentificacion_cli.Text)
                    If ds.Tables(0).Rows.Count > 0 Then
                        MessageBox.Show("Este Documento Ya Esta En Nuestra Base De Datos")
                        txtidentificacion_cli.SelectAll()
                        Return
                    End If
                   
                    txtPrimerNombre_cli.Focus()
                    txtidentificacion_cli.Enabled = False
                    lblretiene_cli.Text = (digito_verificacion(txtidentificacion_cli.Text))
                    lblcontribuyente_cli.Text = txtidentificacion_cli.Text + "-" + lblretiene_cli.Text
                   
                End If
            End If
               
        Catch ex As Exception
            MessageBox.Show(Err.Description)
        End Try
       
    End Sub

    hay codigo porque es necesario, pero veras que esta algo ams prolijo

    tambien podrias armar funciones para separar la logica

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 29 de abril de 2011 23:00

Todas las respuestas

  • hola, pues en el codigo de guiardar deberias implementar la misma logica q tienes en el keypress de cada control y revisar q cada control tenga los datos ingresados y q sean correctos

    Julio Avellaneda
    Blog !!

    viernes, 29 de abril de 2011 22:08
  • ENTONCES PUEDO METER TODOS MIS KEYPRESS EN EL BOTON GUARDAR?

    O CREO UN CICLO SWICH PARA ESTAS VALIDACIONES DENTRO DEL BOTON?

    NO SE QUE HACER NI COMO HACERLO ME DAS UNA AYUDA

    viernes, 29 de abril de 2011 22:12
  • meter los keypress casi,

    puedes tener varias cosas:

    1. vlidar cada control:

    if string.isnullorempty(txtnombre.text) then

    msgbox("ingrese texto")

    exit sub

    end if

    eso lo harias para cada control de texto, si necesitas q sean letras agregasd mas logica

    2. crear unfuncion q te reciba el texto del control y el dato a validar, y retorne true si pasa la validacion o false en caso contrario


    Julio Avellaneda
    Blog !!

    viernes, 29 de abril de 2011 22:15
  • SI TODO ESO YA LO SE. VEA UN EJEMPO DE COMO LO HAGO

    Private Sub txtidentificacion_cli_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtidentificacion_cli.KeyPress
            Try
                If Not Char.IsNumber(e.KeyChar) Then
                    If e.KeyChar <> Convert.ToChar(Chr(8)) Then
                        If e.KeyChar <> Convert.ToChar(Chr(13)) Then
                            e.Handled = True
                        Else
                            If Trim(txtidentificacion_cli.Text) = "" Then
                                MessageBox.Show("Digite Por Favor El Numero De Documento o Nit Por Favor")
                            Else
                                ds = oclientes.consultar_cliente(txtidentificacion_cli.Text)
                                If ds.Tables(0).Rows.Count <> 0 Then
                                    MessageBox.Show("Este Documento Ya Esta En Nuestra Base De Datos")
                                    txtidentificacion_cli.SelectAll()
                                Else
                                    txtPrimerNombre_cli.Focus()
                                    txtidentificacion_cli.Enabled = False
                                    lblretiene_cli.Text = (digito_verificacion(txtidentificacion_cli.Text))
                                    lblcontribuyente_cli.Text = txtidentificacion_cli.Text + "-" + lblretiene_cli.Text
                                End If
                            End If
                        End If
                    End If
                End If
            Catch ex As Exception
                MessageBox.Show(Err.Description)
            End Try
        End Sub

     

    ESTA VALIDACION ME CONFIRMA QUE NO ESTE EN LA BASE DE DATOS ME VALIDA QUE SEA NUMEROS

    AHORA LO QUE YO QUIERO ES HACER UN ESPECIE DE CICLO O SWICHE NO SE LA VERDAD NO SE  QUERO ES REDUCIR CODIGO PERO QUE SE OPTIMO Y METERLO TODO DENTRO DEL BOTON GUARDAR

    SALUDOS

    viernes, 29 de abril de 2011 22:38
  • hola

    el tema es que ahs enredado bastante el codigo

    si solo quieres detecta el enter en el textbox

     

    [ADO.NET] Parte 5 - Ejemplos Simples Operaciones CRUD

    podrias ser algo como esto

     

    Private Sub txtidentificacion_cli_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtidentificacion_cli.KeyPress
        Try
               
            If e.KeyChar = Convert.ToChar(Chr(13)) Then
                If Trim(txtidentificacion_cli.Text) = "" Then
                    MessageBox.Show("Digite Por Favor El Numero De Documento o Nit Por Favor")
                    Return
                End If
               
                    DataSet ds = oclientes.consultar_cliente(txtidentificacion_cli.Text)
                    If ds.Tables(0).Rows.Count > 0 Then
                        MessageBox.Show("Este Documento Ya Esta En Nuestra Base De Datos")
                        txtidentificacion_cli.SelectAll()
                        Return
                    End If
                   
                    txtPrimerNombre_cli.Focus()
                    txtidentificacion_cli.Enabled = False
                    lblretiene_cli.Text = (digito_verificacion(txtidentificacion_cli.Text))
                    lblcontribuyente_cli.Text = txtidentificacion_cli.Text + "-" + lblretiene_cli.Text
                   
                End If
            End If
               
        Catch ex As Exception
            MessageBox.Show(Err.Description)
        End Try
       
    End Sub

    hay codigo porque es necesario, pero veras que esta algo ams prolijo

    tambien podrias armar funciones para separar la logica

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 29 de abril de 2011 23:00