GUÍA DE TRABAJO – GRADO 11 Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 5 Articulación SENA Tema: VALIDACIONES DE CAMPOS CON VISUAL BASIC .NET Objetivo: Realizar validaciones de campos vacios y de tipos de datos en una I.G.U utilizando el lenguaje de Programación “Visual Basic .Net” I. VALIDACIÓN DE CAMPOS VACIOS La validación de campos vacios es necesaria cuando se tiene campos obligatorios en la base de datos y/o cuando se quiere garantizar que los campos no se almacenen en blanco, por ejemplo una llave primaria que no es autonumerica. La validacion de campos vacios se realiza tomado una decision sobre el contenido del textbox a validar verificando si este se encuentra vacio o no. Una funcion en visual basic que efectuaria esta tarea seria por ejemplo: Public Function ValidarCampoVacio(ByRef CuadroTexto As TextBox, ByVal nombrecampo As String) As Boolean If CuadroTexto.Text.Trim = "" Then MsgBox("El Campo " & nombrecampo & " No puede estar vacio", MsgBoxStyle.Information, "Cuidado") CuadroTexto.BackColor = Color.Tomato Return False Else CuadroTexto.BackColor = Color.White Return True End If End Function Esta funcion recibe como parametros de entrada el textbox a validar y el nombre del campo que representa, y retorna una true o false dependiende si el campo esta vacio o no. Adicionalmente cambia el color del textbox cuando este efectivamente se detecta como vacio. Para utilizarla se hace su llamado en el boton correspondiente por cada campo a validar asi: If ValidarCampoVacio(TextBox1, "Identificación") And _ ValidarCampoVacio(TextBox2, "Nombres") And _ ValidarCampoVacio(TextBox3, "Apellidos") Then MsgBox("Muy Bien, Todos los datos ingresados son validos!!!", MsgBoxStyle.Information, "Felicitaciones") End If GUÍA DE TRABAJO – GRADO 11 Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 2 de 5 Articulación SENA II. VALIDACION DE TIPOS DE DATOS Este tipo de validacion es importante para garantizar que la informacion que se envia hacia la base de datos corresponda con la el tipo de dato definido para cada campo. Para lograr este objetivo se hace uso de la denominada Tabla ASCII, la cual le da un representacion numerica a cada carácter del teclado. La Tabla ASCII se distribuye asi : GUÍA DE TRABAJO – GRADO 11 Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 3 de 5 Articulación SENA Teniendo en cuenta los codigos Ascii asignados, los caracteres a tener en cuenta para realizar validaciones de tipos de datos con: a.) Solo Numeros: Codigos ASCII del 48 al 57. b.) Solo Letras: Codigos ASCII del 65 al 90 para mayusculas Codigos ASCII del 97 al 122 para minusculas c.) Enter: Codigo ASCII 13 d.) Retroceso: Codigo ASCII 8 e.) Espacio: Codigo ASCII 32 La validación de tipos de datos se realiza usando el evento KeyPress de cualquier TextBox, el cual se ejecuta inmediatamente el usuario ingresa un caracter en el. Dentro de este evento se debe programar la toma de decisiones con los codigos Ascii que se requieren validar. El codigo Ascii de un carácter se obtiene llamando la función Asc(e.KeyChar) III. VALIDACIÓN DE FECHAS Para validar fechas se puede hacer uso del control llamado DateTimePicker1, el cual desplega un calendario para que el usuario escoja una fecha. Para leer el valor de fecha seleccionado se usa la instrucción: “DateTimePicker1.Value.Date” EJERCICIO Diseñar en Tiempo de diseño el siguiente formulario: GUÍA DE TRABAJO – GRADO 11 Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 4 de 5 Articulación SENA Luego digite el siguente codigo y verifique su funcionamiento: Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If ValidarCampoVacio(TextBox1, "Identificación") And _ ValidarCampoVacio(TextBox2, "Nombres") And _ ValidarCampoVacio(TextBox3, "Apellidos") Then MsgBox("Muy Bien, Todos los datos ingresados son validos!!!", MsgBoxStyle.Information, "Felicitaciones") Label5.Text = "Los datos Ingresaron fueron " & TextBox1.Text & " " & TextBox2.Text & " " & TextBox3.Text Label6.Text = "La Fecha Seleccionada Fue " & DateTimePicker1.Value.Date End If End Sub Public Function ValidarCampoVacio(ByRef CuadroTexto As TextBox, ByVal nombrecampo As String) As Boolean If CuadroTexto.Text.Trim = "" Then MsgBox("El Campo " & nombrecampo & " No puede estar vacio", MsgBoxStyle.Information, "Cuidado") CuadroTexto.BackColor = Color.Tomato Return False Else CuadroTexto.BackColor = Color.White Return True End If End Function Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If Not (Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57) And Asc(e.KeyChar) <> 8 And Asc(e.KeyChar) <> 13 Then MsgBox("Debe Ingresar sólo Numeros", MsgBoxStyle.Information, "Cuidado") e.KeyChar = ChrW(0) End If If Asc(e.KeyChar) = 13 Then TextBox2.Focus() End If GUÍA DE TRABAJO – GRADO 11 Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 5 de 5 Articulación SENA End Sub Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress If Not (Asc(e.KeyChar) >= 65 And Asc(e.KeyChar) <= 90) And Not (Asc(e.KeyChar) >= 97 And Asc(e.KeyChar) <= 122) And Asc(e.KeyChar) <> 8 And Asc(e.KeyChar) <> 13 And Asc(e.KeyChar) <> 32 Then MsgBox("Debe Ingresar sólo Letras", MsgBoxStyle.Information, "Cuidado") e.KeyChar = ChrW(0) End If If Asc(e.KeyChar) = 13 Then TextBox3.Focus() End If End Sub Private Sub TextBox3_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress If Not (Asc(e.KeyChar) >= 65 And Asc(e.KeyChar) <= 90) And Not (Asc(e.KeyChar) >= 97 And Asc(e.KeyChar) <= 122) And Asc(e.KeyChar) <> 8 And Asc(e.KeyChar) <> 13 And Asc(e.KeyChar) <> 32 Then MsgBox("Debe Ingresar sólo Letras", MsgBoxStyle.Information, "Cuidado") e.KeyChar = ChrW(0) End If If Asc(e.KeyChar) = 13 Then Button1.Focus() End If End Sub End Class