You are on page 1of 87

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg.

. 1 En muchas ocasiones nos hemos preguntado cmo es posible las conexiones y cuantas veces puedo hacer una, la respuesta es sencilla, las codificaciones de Visual .Net con respecto a este tema con muy cortas, es decir solo es suficiente tener La cadena de conexin lista para que inmediatamente tengamos una conexin directa con la base de datos (SQL) y realizar las transacciones necesarias en un proyecto basado en Visual Net. COMO FUNCIONA LA PROGRAMACION CON BASES DE DATOS. 1. Conecta con una Base de Datos. 2. Solicitar Datos Especficos. 3. Devolver Datos. 4. Transmitir Actualizaciones 5. Cerrar Conexin OBSERVACION: En muchas aplicaciones, la conexin se cierra despus de que el usuario accede a los datos y vuelve a abrirse cuando el usuario reenva actualizaciones o realiza ms peticiones. VB.Net le permite muchas maneras de conectarse a una base de datos o fuente de datos. La tecnologa utilizada para interactuar con una base de datos o fuente de datos se llama ADO.NET. Las partes ADO representan los objetos de datos. Pero al igual que fue un sistema de clases base (lder de una jerarqua, si se quiere), por lo que es ADO. Formando la base de la clase ADO de los cuales son cinco los principales objetos otros: Objeto Definicin SqlConnection Un objeto SqlConnection representa una sesin nica de origen de datos. Sirve para interactuar con una base de datos. Esto requiere ciertos elementos como: Server, Uid (usuario ID), Password (Contrasea) y Database (Base de Datos), es decir: el servidor que puede ser localhost o el nombre de la PC a donde conectar, inclusive puede ser la IP de dicho servidor. A esto se le llama cadena de conexin, el cual contendr toda la informacin para establecer la conexin. Sqlcommand Un objeto SqlCommand le permite especificar qu tipo de interaccin que desea realizar con una base de datos. Por ejemplo, usted puede hacer seleccionar, insertar, modificar y eliminar los comandos de filas de datos en una tabla de base de datos Y SUS METODOS SON:

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 2 SqlDataAdapt Es el SqlDataAdapter que gestiona las conexiones er con la fuente de datos y nos da el comportamiento ExecuteNonQuery: Ejecuta una instruccin desconectado. SqlDataAdapter abre una conexin Transact-SQL en Conexin y devuelve el nmero slo cuando sea necesario y se cierra tan pronto de filas afectadas. como se ha llevado a cabo su tarea ExecuteReader: Enva un Texto comando SqlDataReade Unmediante una es Conexin que es bueno para la SqlDataReader un tipo, y crea un objeto r lectura de los datos de la manera ms eficiente SqlDataReader posible * No * se puede utilizarconsulta y devuelve la ExecuteScalar: Ejecuta la para escribir datos. Dataset Unprimera columna de la primera fila del conjunto de conjunto de datos es una en-memoria para almacenar los datos que puede contener muchas resultados devueltos por la consulta. Columnas o tablas. son ignorados.datos slo tienen los datos y no filas Conjuntos de interactan con un origen de datos CommandText a ExecuteXmlReader: Enva Connection y crea un objeto XmlReader, Similar a ExecuteReader.

Cmo Visual Basic Net Interacta con SQL Server? MODO DE CONEXIN

COMO DEFINIR UNA CONEXIN AUTENTIFICADA CON SQL SERVER


Dim CN As New SqlConnection(Server=localhost;Uid=Sa;Password=123;Database =STAFF) La variable conexin es CN y es pblica es decir todos los controles del formulario donde fue definido saben de su existencia, el servidor es localhost (Mi Propia PC), el cual tiene un usuario de inicio de sesin llamado Sa, y la contrasea de acceso es 123, esta conexin est dirigida a la base de datos STAFF, Toda esta informacin deber estar entre comillas.

COMO DEFINIR UNA CONEXIN AUTENTIFICADA CON WINDOWS


Dim CN As New SqlConnection(Server=localhost;Integrated Security=SSPI;Database=STAFF) La variable conexin es CN y es pblica es decir todos los controles del formulario donde fue definido saben de su existencia, el servidor es localhost (Mi Propia PC), el cual ya no lleva usuario ni contrasea, estas son obtenidas desde el inicio de sesin de Windows, esta conexin est

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 3 dirigida a la base de datos STAFF, Toda esta informacin deber estar entre comillas.

Nota: Es Recomendable usar la primera forma de conexin, conexin


basada en SQL Server, ya que este trabaja individualmente a Windows (Sistema Operativo) si el acceso a Windows es ilegal, entonces esto permitir la entrada ilegal al servidor SQL server. La lnea Imports System.Data.SqlClient es necesaria para la utilizacin de comandos SQL en VBNET. Sin esta declaracin Visual no podr hace conexiones o ejecutar comandos SQL - TRANSAC. DEFINIR UN OBJETO DATASET

Dim DsEntorno as New DataSet

Este objeto DsEntorno est declarado en modo pblico sobre el formulario, si se desea un Dataset en modo Privado, hacer lo mismo pero dentro de un objeto cuya inicializacin exprese Private Sub.

DEFINIR Y POBLAR UN OBJETO SqlDataAdapter (Modo Pblico)


Dim DaCliente As New SqlDataAdapter("SELECT * FROM CLIENTE", CN)

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 4

Nota: este objeto tendr el nombre de: DaCliente la Inicializacin de


este objeto requiere una consulta expresiva (SELECT * FROM CLIENTE) guiada con una Conexin (Cn) debidamente declarada con anticipacin. As como se observa en la imagen. Para que este objeto sea poblado, requiere ser programado sobre el evento LOAD del formulario. Este creara inmediatamente una tabla llamada CLIENTE con todos sus registros, dentro del entorno de datos DsEntorno.

DEFINIR Y POBLAR UN OBJETO SqlDataAdapter (Modo Privado)

Nota: Esta clase de definicin son privadas, solo en control donde fue
definido podr usarlo para sus propios propsitos.

DEFINIR UN OBJETO SqlCommand

Nota: Este ejemplo est almacenado datos en la tabla CLIENTE de la


base de datos activa, el comando requiere una sentencia SQL como cadena, de esa manera Visual Basic NET interacta con SQL Server. Para la ejecucin de esta cadena se requiere a parte la declaracin de una variable CMD el cual contendr la cadena a ejecutar va la conexin (Cn), esta conexin debe estar abierta y luego enviar la ejecucin con el comando ExecuteNonQuery, para finalizar el proceso esta conexin debe ser cerrada. Desde luego todo este proceso estar sometido a un

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 5

try catch (es decir a una prueba de evaluacin) si en caso sucede un


error en el proceso el Try Catch se vera forzado a interrumpir todo el proceso y presentar el mensaje de error Error: en Grabacin respetivamente con su cdigo de error, en otro caso simplemente grabara los datos. Con este objeto VBNET puede ejecutar cualquier comando SQL permitido. EL comando DISPOSE se encargara de eliminar de memoria la variable CMD. Los datos que se almacenan en la tabla CLIENTE deben corresponder a los objetos del formulario mencionado, segn el orden de los campos que tenga la tabla cliente, as ser el orden de los objetos que forman parte de la cadena de grabacin. DEFINIR UN OBEJETO SqlDataReader

Nota: Este ejemplo permite extraer datos de la tabla cliente y almacenarlos en las casillas de textos correspondientes. Los campos del DataReader son los mismos que los de la tabla Cliente.

Caso Prctico I
Se tiene el siguiente Modelo Relacional: Erwin SQL DATOS: SERVICIOS BASE DE

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 6

Este Modelo Relacional est constituido por 5 tablas (Cliente, Departamento, Provincia, Distrito, y Generador) aqu se debern registrar todos departamentos provincias y distritos existentes en Per, la Tabla Generador ser usada para generar los cdigos de cliente ya que estos deben ser automticos, como parte final la tabla cliente, aqu se harn los mantenimientos respectivos (Grabar, Consultar, Eliminar y Actualizar Datos de clientes) usando como aplicacin a: Visual Basic Net y su potente herramienta ADO NET. DISEAR EL SIGUIENTE FORMULARIO

Este Formulario est constituido por los siguientes objetos: Cajas de Textos: TxtIdCli, TxtNom, Txtdir Combos: CboDep, CboPro, CboDis, CboEstado. MaskedTextBox: TxtFNac, TxtFreg PROGRAMANDO EL FORMULARIO IMPORTAR Y HACER DECLARACIONES GENERALES

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 7

En este paso se declaran tres variables, Cn (Conexin) DsEntorno (El Dataset) y el DaCliente (DataAdaptador) estos tres objetos son necesarios para nuestro proyecto. CREAR LOS SIGUIENTES PROCEDIMIENTOS

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 8

CREAR LAS SIGUIENTES FUNCIONES

CARGAR LA TABLA CLIENTE Y EL DATASET, BLOQUEAR / DESBLOQUEAR CONTROLES, CARGAR TODOS LOS DEPARTAMENTOS EN EL COMBO CboDep (CargarDepartamentos) EVENTO -> LOAD DEL FORMULARIO

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 9

PROGRAMAR EL COMBO DEPARTAMENTO - CboDep (EVENTO ->TEXTCHANGED)

PROGRAMAR EL COMBO PROVINCIA - CboPro (EVENTO ->TEXTCHANGED)

PROGRAMAR EL BOTON NUEVO (EVENTO ->CLICK)

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 10 PARA PODER GRABAR DATOS, DEBEN EXISTIR LAS SIGUIENTES FUNCIONES EXTRAS: GENERADOR DE CODIGOS

ACTUALIZACION DEL GENERADOR

VALIDAR LOS OBJETOS DEL FORMULARIO, PARA QUE NO ESTEN VACIOS

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 11

DEVOLVER NOMBRES DE DEPARTAMENTOS POR BUSQUEDA

DEVOLVER NOMBRES DE PROVINCIAS POR BUSQUEDA

DEVOLVER NOMBRES DE DISTRITOS POR BUSQUEDA

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 12

PROGRAMAR EL BOTON GRABAR (EVENTO -> Click)

PROGRAMAR EL BOTON CONSULTAR (EVENTO -> CLICK)

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 13

PROGRAMAR EL BOTON ACTUALIZAR (EVENTO -> CLICK)

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 14

FILTROS EN VISUAL BASIC NET.


Los filtros son un tipo de bsqueda de datos en forma masiva, los cuales cumplen ciertas condiciones, para crear un filtro se debe saber el uso del comando SQL SELECT, el cual presenta el resultado de una consulta en algn objeto determinado de Visual Basic Net, estos pueden ser Combos, Listas, Datagrids, DatagridView entre otros. Los filtros que Visual Basic Net puede crear, depende de ciertos elementos u objetos clases para su definicin, estos son: SQLCOMMMAND, SQLDATAREADER, SQLDATADAPTER basados en un conexin SQLCONNECTION.

Caso Prctico II
Tomando en cuenta la base de datos SERVICIOS del proyecto anterior crear los siguientes filtros va formularios de visual Basic Net. LA TABLA CLIENTE DEBE CONTAR CON LOS SIGUIENTES DATOS

Como se observa, esta tabla contiene algunos datos de caracteres que redundan (Repiten) es decir: el filtro podra realizarse por: Cdigo de Cliente, Nombres de Clientes, Departamentos, Provincias, Distritos, Fecha de Nacimientos, Fechas de Registros y Estados de cliente. DISEE EL SIGUIENTE FORMULARIO

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 15

Los objetos de este formulario tienen los siguientes Nombres:

Control TxtCriterio1 Caja de Texto TxtCriterio2 Caja de Texto Filtrar1 Button Control

Nombre

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 16 Control TxtCriterio3 Caja de Texto TxtCriterio4 Caja de Texto Filtrar2 Button Control Nombre

Control TxtCriterio5 Caja de Texto TxtCriterio6 Caja de Texto Filtrar3 Button Control

Nombre

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 17 Control Nombre TxtF1 MaskedTextBox, Cambiar al formato Fecha DD/MM/YYY Cambiar las Propiedades del Objeto TxtF2 MaskedTextBox, Cambiar al formato Fecha DD/MM/YYY Cambiar las Propiedades del Objeto Filtrar4 Button Control

Control CboDep ComboBox CboPro ComboBox CboDis ComboBox Filtrar5 Button Control

Nombre

Y por ltimo un control DataGridView, Cambiar El nombre Por DtgResultados

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 18

Para desarrollar esta clase de ejercicios, se requiere saber algo de la sentencia SELECT que se basa en consultas, por ejemplo en este caso, solo se necesita 5 consultas desarrolladas, ya que nuestro formulario posee 5 formas de filtros, las soluciones en SQL estn enumeradas se la siguiente forma: PRIMER FILTRO Este Filtro basado en Select SQL busca al cliente C0001

SEGUNDO FILTRO Este Filtro basado en Select SQL busca aquellos clientes cuyos nombres empiecen con la letra S

TERCER FILTRO Este Filtro basado en Select SQL busca aquellos clientes cuya direccin empiecen con la letra C

CUARTO FILTRO Este Filtro basado en Select SQL busca aquellos clientes cuyas fechas de nacimientos se encuentres entre 03/05/1980 y 03/05/1982

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 19

QUINTO FILTRO Este Filtro basado en Select SQL busca aquellos clientes que viven en un determinado departamento, provincia o distrito. Para ello debemos digitar los cdigos correspondientes al departamento, provincia y distritos, entre los apstrofes..

TODAS ESTAS CONSULTAS SON LAS SOLUCIONES PARA NUESTRO FORMULARIO, LO QUE SE NECESITA ES TRANSCRIBIR A VISUAL BASIC NET, PARA QUE ESTOS SEAN EJECUTADOS. AQU SE UTILIZARAN LOS OBJETOS: SqlConnection y SqlDataAdapter.

PROGRAMAR EL FORMULARIO IMPORTAR Y DECLARAR LAS VARIABLES DE ENTORNO INICIAL EN MODO PUBLICO, ASI TODOS LOS CONTROLES DEL FORMULARIO LO RECONOCERAN. EN LAS DECLARACIONES SE ENCUENTRAN DEFINIDOS LA CONEXIN (CN) Y EL DATASET DSENTORNO

DECLARAR LOS SIGUIENTES PROCEDIMIENTOS

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 20

DECLARAR LAS SIGUIENTES FUNCIONES

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 21

PROGRAMAR EN EL EVENTO LOAD DEL FORMULARIO

PROGRAMAR EN EL BOTON FILTRAR1 EVENTO CLICK

PROGRAMAR LA CASILLA DE TEXTO TXTCRITERIO2 EVENTO TEXTCHANGED

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 22 PROGRAMAR EL BOTON FILTRAR2 EVENTO CLICK

PROGRAMAS LA CASILLA DE TEXTO TXTCRITERIO4 EVENTO TEXTCHANGED

PROGRAMAR EL BOTON FILTRAR3 EVENTO CLICK

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 23

PROGRAMAR LA CASILLA DE TEXTO TXTCRITERIO6 EVENTO TEXTCHANGED

PROGRAMAR EL BOTON FILTRAR4 EVENTO CLICK

PROGRAMAR EL BOTON FILTRAR5 EVENTO CLICK

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 24

APLICACIN EJECUTADA

Estos dos formularios anteriores has sido desarrollados con cdigo tradicional, es decir todo el cdigo fue centralizado en el formulario y solo trabaja ah, pero existe otra manera ms reducida de realizarlo y esta es mediante clases u objetos de herencias. Las clases son de dos tipos o al

APRENDER A ORGANIZAR NUESTRO CODIGO (CLASES).

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 25 menos son estas las que se usan con ms frecuencia: CLASE COMPARTIDA (Shared = Compartido) Y LA CLASE INSTANCIADA (despus de usar se auto descarga)

Caso Prctico III


Crear la base de datos: SERVICIOS2, similar a la base de datos SERVICIOS del proyecto anterior, con 2 ligeras variantes, 1: a la tabla CLIENTE se le ha agregado un campo nuevo llamado FOTO de tipo IMAGE, el cual guardara la foto del cliente.

2: A esta base de datos se le ha agregado un procedimiento almacenado llamado: SPGrabarFoto, el cual contiene la siguiente estructura:

Este procedimiento almacenado permitir Grabar y Modificar las imgenes que se encuentran en la tabla CLIENTE. Esto es necesario para nuestro proyecto de visual Basic Net.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 26

Crear un nuevo proyecto de Visual Basic Net con el nombre: SERVICIOS2, con las nuevas caractersticas, y luego agregar una clase con el nombre MiClase.
Para agregar una clase se debe hacer click sobre el men principal llamado Proyectos y luego escoger la opcin Agregar Clase. As como se observa en la imagen.

Como resultado de esta operacin se obtendr la siguiente ventana:

Es aqu donde se escribir el nombre de la Clase a agregar: MiClase luego hacer click en Agregar, aparecer una nueva ventana de cdigo con la siguiente estructura. Antes de empezar se debe realizar la siguiente importacin (Sobre l: Public Class MiClase) para que SQL Server pueda trabajar dentro de esta clase.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 27

Aqu es donde se redactaran los cdigos de herencia, estos pueden ser Procedimientos (Public Sub), funciones (Public Function), Mtodos y Propiedad (Public Property) Get - Set, entre otros. Todo ese cdigo ser redactado entre el Public Cass MiClase y EndClass

EMPEZANDO LA CLASE
Dentro de dicha Clase, digitar los siguientes cdigos:
DEFINIR CONEXIN EN LA CLASE

ESTE PROCEDIMIENTO COMPARTIDO, PERMITE QUE LA CLASE EJECUTE COMANDOS SQL: COMO POR EJEMPLO: INSERT, UPDATE, DELETE, NECESARIOS PARA EL PROYECTO.

ESTA FUNCION COMPARTIDA, PERMITE QUE LA CLASE EJECUTE COMANDOS SQL DE TIPO CONSULTA, COMO POR EJEMPLO: EL SELECT, ES NECESARIOS PARA EL PROYECTO DE VBNET, GRACIAS A ESTA FUNCION SE PODRA RELIZAR CONSULTAS Y FILTROS.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 28

NUESTRO PROYECTO REQUERE UN ACTUALIZADOR EN LA TABLA GENERADOR, GRACIAS A ESTE PROCEDIMIENTO COMPARTIDO, LOS CODIGOS DE CLIENTE PODRAN AUMENTAR UNO EN UNO O AUTOGENERARSE.

ESTA FUNCION COMPARTIDA PERMITE A LA CLASE BUSCAR Y DEVOLVER CODIGOS DE DEPARTAMENTOS, ESTO SERA NECESARIO PARA GRABAR LOS DATOS EN LA TABLA CLIENTE, INCLUSIVE SERVIRA EN LAS ACTUALIZACIONES

ESTA FUNCION COMPARTIDA PERMITE A LA CLASE BUSCAR Y DEVOLVER CODIGOS DE PROVINCIAS, ESTO SERA NECESARIO PARA GRABAR LOS DATOS EN LA TABLA CLIENTE, INCLUSIVE SERVIRA EN LAS ACTUALIZACIONES

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 29

ESTA FUNCION COMPARTIDA PERMITE A LA CLASE BUSCAR Y DEVOLVER CODIGOS DE DISTRITOS, ESTO SERA NECESARIO PARA GRABAR LOS DATOS EN LA TABLA CLIENTE, INCLUSIVE SERVIRA EN LAS ACTUALIZACIONES

ESTA FUNCION COMPARTIDA PERMITE A LA CLASE GENERAR Y DEVOLVER CODIGOS DE CLIENTE U OTRAS TABLAS, ESTO SERA NECESARIO PARA GRABAR LOS DATOS EN LA TABLA CLIENTE

ESTA FUNCION COMPARTIDA PERMITE A LA CLASE BUSCAR Y DEVOLVER NOMBRES DE DEPARTAMENTOS, ESTO SERA NECESARIO PARA LAS CONSULTAS DE CLIENTES.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 30

ESTA FUNCION COMPARTIDA PERMITE A LA CLASE BUSCAR Y DEVOLVER NOMBRES DE PROVINCIAS, ESTO SERA NECESARIO PARA LAS CONSULTAS DE CLIENTES.

ESTA FUNCION COMPARTIDA PERMITE A LA CLASE BUSCAR Y DEVOLVER NOMBRES DE DISTRITOS, ESTO SERA NECESARIO PARA LAS CONSULTAS DE CLIENTES.

CONTROLES DE ESTE FORM. 3 Cajas de Texto: TxtIdC (Cdigo), TxtNom (Nombre), CLASE TERMINDA TxtDir (Direccin) 4 Combos: CboDep A CONTINUACION (Departamento), CboPro DISEE EL SIGUIENTE FORMULARIO CON TODAS SUS (Provincia), CboDis (Distrito), CARACTERISTICAS CboEstado (Estado). 2 MaskedTextBox: TxtFnac (Fecha Nac), TxtFreg (Fecha Reg). 1 PictureBox: PicFoto 1 OpenFileDialog: OpenFileDialog1 6 Buttons: BtnNuevo, lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 31

PicFoto

PROGRAMANDO EL FORMULARIO: AQU SE DEBE AGREGAR LOS SIGUIENTES NOMBRES DE ESPACIOS LOS CUALES PERMITIRAN MANIPULAR IMGENES, INCLUYENDO AL ESPACIO SQL.

DEFINIR A NIVEL DE FORMULARIO CLIENTE (FrmCliente) LAS SIGUIENTES VARIABLES, FUNCIONES Y PROCEDIMIENTOS

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 32

PROGRAMAR EL FORMULARIO EVENTO LOAD

PROGRAMAR EL COMBO DEPARTAMENTO EVENTO TEXTCHANGED

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 33 PROGRAMAR EL COMBO PROVINCIA EVENTO TEXTCHANGED

PROGRAMAR EL BOTON NUEVO EVENTO CLICK

PROGRAMAR EL BOTON GRABAR EVENTO CLICK

PROGRAMAR EL BOTON GRABAR EVENTO CLICK

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 34

PROGRAMANDO EL BOTON CONSULTAR EVENTO CLICK

PROGRAMAR EL BOTON EXAMINAR

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 35

PROGRAMAR EL BOTON ACTUALIZAR EVENTO CLICK

Crystal Reports
Crystal Reports es una aplicacin de inteligencia empresarial utilizada para disear y generar informes desde una amplia gama de fuentes de datos (bases de datos). Varias aplicaciones, como Microsoft Visual Studio Net, incluyen una versin de Crystal Reports como una herramienta de propsito general del informes/reportes. Crystal Reports se convirti en el escritor de informes estndar cuando Microsoft lo liber con Visual Basic. Campos

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 36 Muchos de los datos que se pueden insertar en el informe son campos de base de datos seleccionada. stos mostrarn los datos tal como estn almacenados en la base de datos. Campos de frmula Si se quieren desplegar datos que son valores calculados, tendr que crear un campo de frmula y ponerlo en el informe, similarmente a lo anterior (arrastrar hasta el lugar deseado, o insertarlo). Se cuenta con un amplio espectro de frmulas disponibles para la creacin de stas. Las cuales pueden ser programadas o creadas segn el lenguaje crystal, integrado al programa, o bien, utilizando la sintaxis de Basic (Visual Basic Net). Campos de parmetro Sirven para solicitar al usuario de un informe que especifique informacin. De esta manera se crear un campo de parmetro. Los parmetros son como preguntas que el usuario necesita responder antes de que se genere el informe. La informacin que escribe el usuario, o la forma en que responde, determinan lo que aparece en el informe. Los parmetro pueden ser creados con datos fijos (estticos), dinmicos si los datos experimentan cambios, o en forma de cascada, donde le usuario del informe selecciona de una lista desplegable aquello que desea ver. Vista previa y exportacin de reportes/informes El informe puede ser visto de antemano en la pantalla, imprimir en papel, o se exportado a uno de los diversos formatos de archivo soportados: Tipos de Reportes Los reportes son variados, los principales son: Reportes Normales y filtrados, es decir sin algn estilo de presentacin, Reportes Agrupados, es decir los que se muestran con algunos niveles de separacin, y las Tab Cruzadas, es decir reportes de alta complejidad.

Caso Prctico IV
Para desarrollar una aplicacin orientada a Crystal Reports, se debe contar con una base de datos, en esta ocasin usaremos a la base de datos SERVICIOS2 del proyecto anterior, el cual deber contener datos, para su posterior pre visualizacin en un Informe o Impresora.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 37 Para nuestro ejemplo usaremos a la tabla CLIENTE, el cual debe contar con los siguientes Datos:

Estos datos sern ingresados desde el Formulario Cliente, como observara contamos con algunos registros BLOQUEADOS y la fotografa del Cliente no es visible desde el manejador, esto se debe a que ese cdigo de la foto est siempre encriptado en su respectivo campo o columna, pero podr ser vista en nuestro reporte. COMO CREAR UN CRYSTAL REPORTS EN VISUAL BASIC NET CREAR un nuevo proyecto con el nombre SERVICIOS3, desde visual Basic Net y mantener el formulario que se presenta vacio momentneamente. LUEGO agregar un nuevo componente, este ser el Crystal Reports, esto se hace de la siguiente manera: ELIJA DEL MENU PRINCIPAL LA OPCION PROYECTO Y LUEGO LA SUB OPCION AGREGAR NUEVO ELEMENTO. As como se muestra en la imagen.

Como resultado obtendremos las siguiente ventana, aqu se deber seleccionar la opcin Reporting (Izquierda) y luego la Opcin Crystal Report (Derecha) e ingresamos el nombre del Crystal RptCliente1.rpt y hacemos click en el botn Agregar.

2 lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 38

1 4

Licencia para el usuario final


Este Paso es casi opcional, esta ventana solo se obtendr siempre y cuando se est creando un Crystal Report por primera vez en Visual Basic Net. Bueno lo nico que debemos hacer es Aceptar los Trminos y luego hacer click el botn OK.

Galerias Reports 1

de

Crystal

2 3

Este Paso est orientado a escoger el tipo de Crystal Reports a Crear: Using The Reports Wizard (Usar el asistente Para Reportes) ((Recomendado)). As a Blank Report (Como un Reporte en Blanco. From an Existing Report (Desde un Reporte Existente) ((Choose an Expert))

Modo standard Modo Mail Label

Modo Cross Tab

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 39

El Modo Estndar es el ms recomendable ya que con l se realizan reportes sencillos y de presentacin adecuada, sin dejar de lado a los otros dos modos. SELECCIONE EL MODO STANDARD Y HACER CLICK EN OK. Despus obtendremos la siguiente ventana: Ya que nuestro reporte depende de datos de tablas, debemos establecer conexin con nuestra base de datos SERVICIOS2, de la siguiente manera:

Aqu debemos hacer click en el signo + de la expansin del componente OLE DB (ADO), el cual mostrara otra ventana, para seleccionar el proveedor de

Seleccionamos el proveedor Microsoft OLE DB Provider for SQL Server tal como se muestra en la imagen. Y hacemos click en el botn Next (Siguiente)

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 40

El proveedor es el intermediario entre la base de datos y nuestra aplicacin de Visual Basic Net, sin este componente nativo sera imposible la conexin, aunque existen otras maneras de establecer la conexin que implican detalles adicionales al manual que estamos elaborando. DESPUES DE SELECCIONAR EL PROVEEDOR HAGA CLICK EN NEXT (Siguiente). Se obtendr la siguiente ventana, aqu se deber cumplir con algunos requisitos para establecer la conexin, por ejemplo: el nombre del servidor, el usuario, la contrasea y la base de datos a acceder, estos datos son necesarios para nuestra conexin. Estos debern ser rellenados manualmente. Cuando se termine hacer click en el botn NEXT (Siguiente).

En esta ventana debemos hacer click en FINISH (Finalizar)

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 41

Despus de finalizar se obtendr una ventana nueva con la configuracin de la conexin establecida, se observara la conexin y la base de datos, con sus tablas incluidas.

Como se dijo en el enunciado de la pgina anterior aqu se observa la base de datos con sus tablas incluidas, es aqu donde debemos seleccionar las tablas CLIENTE, DEPARTAMENTO, PROVINCIA y DISTRITO, y agregarlas, estas se observaran en la lista de la derecha, estas tablas formaran parte del reporte. Luego haga click en NEXT > (Siguiente)

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 42 En esta ventana se observan las tablas que fueron agregadas, estn con sus respectivas relaciones, si no fuera as, Ud. Podr hacerlos manualmente, con solo desplazar el mouse y establecer dichas relaciones, aunque en este ejemplo no es el caso, pero podra presentarse ese problema y tener ciertos errores en el reporte, por lo tanto es importante las relaciones en las tablas click en NEXT >

Este paso es un poco controversial es decir, aqu debemos seleccionar los campos de las tablas que formaran parte de nuestro reporte, pero pensemos dos cosas: PRIMERO en este paso puedo seleccionar manualmente los campos que se usaran en el reporte, eso implica seleccionar uno por uno e ir agregndolos. Gracias a este paso podemos realizar ciertas agrupaciones y/o configuraciones con los datos del reporte de tal forma existira cierta complejidad en nuestro informe. SEGUNDO por lo general todos los campos de las tablas pasan al reporte, obviando algunos criterios del primer paso, si es este el caso, directamente hacemos click en FINISH (Finalizar) de esa manera todos los campos de las tablas podrn formar parte de nuestro reporte. Cosa que sera lo (((Recomendado))) para no volver a configurar la conexin, por si algn campo nos falto agregar.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 43

ESCOJA LA SEGUNDA ALTERNATIVA CLICK EN FINISH

Aqu est el cuerpo de Reporte, como se observa el reporte tiene 5 secciones. Seccion1 (Report Header): Es la cabecera del informe, es el todo, ya que un informe puede tener muchas pginas. Esta Seccin est Bloqueada. Seccion2 (Page Header): Es la cabecera de la pgina, esto solo saldr por cada hoja del informe. Seccion3 (Detalles): Esta seccin le corresponde a los datos de un detalle. Puede ser los datos de cualquier tabla. Seccion4 (Report Footer): Es el pie de la pgina, esto solo saldr por cada hoja del informe. Esta Seccin est Bloqueada. Seccion5 (Report Header):

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 44 Es la cabecera del informe, ya que un informe puede tener muchas pginas.

Cuadro de Herramientas de Informes

MODO SELECCIN DE OBJETOS CAJA DE TEXTOS TRAZADOR DE LINEAS OBJETO FIGURA O CAJA
EN NUESTRO INFORME SOLO USAREMOS DOS SECCIONES: (Seccion2 Page Header) (Seccin3 Detalles) es decir, Cabecera de Pagina y el Detalle de la pagina.

SECCION2 PAGE HEADER


lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 45 BUENO EMPEZAREMOS A DISEAR NUESTRO INFORME CON ALGUNAS CAJAS O ETIQUETAS:

Para colocar estos textos en nuestro informe es solo cuestin de hacer doble click sobre la herramienta de Caja de Textos (Text Object) y luego escribimos sobre dicho objeto el texto que queramos. El elemento fecha es un objeto que fue agregado automticamente en el momento que se cre el informe. Y la lnea se har con la herramienta Line Object, Esto debe quedar tal como se presenta en la imagen. Los formatos de textos dependern de las dems herramientas o propiedades del objeto para su mejor presentacin. Esta presentacin depender del usuario, las herramientas a usar para su mejor presentacin.

SECCION3 DETALLES
En esta seccin empezaremos a colocar los campos de la tabla CLIENTE, tal como se presenta en el informe, recuerda que en cualquier seccin se podr colocar cualquier campo de una tabla, pero eso depender del criterio del programador.

Los campos sern arrastrados desde la ventana Field Explorer (Explorador de Campos) hacia el diseo del informe, en la seccin3

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 46 aparecen los campos de las tablas, pero encima (Seccion2 Page Header) aparecen sus respectivas etiquetas. Estas estarn siempre en subrayado.

Si observamos la vista previa del informe, esta se vera de la siguiente manera: (Leer ms abajo)

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 47 En la parte inferior de la ventana del informe existe dos enlaces: Main Report y Main Report Viewer estos enlaces permitirn permutar entre el diseo del informe y su pre visualizacin. El informe deber cambiar de forma, debido a que existe la foto del cliente y esta debe ser agregada para ser mostrada, entonces mover etiquetas y campos de tal manera que quede de la siguiente forma, tal como se muestra la imagen. Las etiquetas son aquellos que tienen subrayado.

Ahora volvamos a pre visualizar: click en Main Report Viewer

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 48

Como se observa la estructura del informe a cambiado por el simple hecho de cambiar posiciones de los objetos del informe, tal como se hizo. (Etiquetas a la izquierda y campos a la derecha) A nuestro informe le falta algunos elementos, como por ejemplo: La Edad del Cliente, Fecha de Nacimiento en verbo, Prximo Cumpleaos del Cliente, Estado del Cliente fijado en verbo: CLIENTE ACTIVO o CLIENTE BLOQUEADO. Esta clase de elementos se denominan Campos Calculados (Formula Fields), es decir son elementos creados por el usuario, para determinar o calcular ciertas operaciones dentro de la estructura del informe.

COMO CREAR UN CAMPO CALCULADO (Formula Fields). Encontrndonos en el entorno del Reporte, ir a la ventana Formula Fields, hacer click derecho sobre dicha opcin y seleccionar: NEW (Nuevo), as como se presenta en la imagen. ingresamos el nombre Aqu del campo calculado y hacemos click en el botn Use Editor

El cual se mostrara una nueva ventana, aqu se deber redactar el siguiente cdigo: este cdigo permitir saber cuntos aos tiene el cliente, usando como campo elemental a la fecha de nacimiento. Aos

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 49

Esta ventana contiene los campos del informe (Izquierda) que sern usados en las operaciones, si se desea aplicar algn comando de gestin, se debe usar las Funciones (Centro) y algunas operaciones extras (Derecha), al final el cdigo se redactara en el nivel inferior. Para verificar la sintaxis del cdigo se deber pulsa el botn X +2 ubicado en la parte superior izquierda de la imagen. Estos mensajes podran ser de xitos o fracasos. Cuando el cdigo este terminado, hacer click en el botn Save And Close, ubicado tambin en la parte superior izquierda de la imagen

Ahora crear los siguientes campos calculados con los siguientes nombres: EstadoPersonalizado, FechaNacVerbo y ProximaFecha, estos contendr las siguientes programaciones: EstadoPersonalizado

FechaNacVerbo

ProximaFecha

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 50

Por lo tanto tendremos 4 campos calculados definidas por el usuario, quedando as como se presenta la imagen:

Estos nuevos campos debern ser colocados en nuestro informe, con sus respectivas etiquetas, para ello nuestro reporte tendr un nuevo aspecto:

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 51

Ahora pre visualizaremos el informe, hacer click en el enlace Main Report Preview. Mostrar a un 100% de ampliacin. Para el documento, si se desea ver a los dems registros reduzca el porcentaje de ampliacin, as podr ver a todos los registros.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 52 Los campos extras que se agregaron, visualizan su contenido a favor del informe ya que cada uno de ellos est programado para mostrar el resultado de dicho cdigo, todas las filas de datos del informe estarn afectas a dichos campos calculados.

Ahora crear un formulario (FrmReporte1) para su presentacin y uso. Agregar al formulario un control llamado: CrystalReportViewer, en el formulario ser nombrado como CrystalReportViewer1.

El control CrystalReportViewer es el objeto visor de reportes, con el podemos observar el reporte va formulario de nuestra aplicacin. Este objeto deber tener las siguientes propiedades: Propiedad Valor

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 53 Nombre DisplayGroupTree BorderStyle Reporte1 False Fixed3D

AHORA PROGRAMAR EL FORMULARIO CON EL SIGUIENTE CODIGO:

EJECUTE EL FORMULARIO Y MAXIMIZARLO, OBSERVE:

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 54

FIN-DE-LA-PRIMERA-PARTE-DE-INFORMES PARAMETROS. Es un componente extra en los informes, la ayuda bsica que tienen estos parmetros es que a nuestro informe llegara un valor desde afuera, es decir enviar un valor desde nuestro formulario (el formulario es un objeto independiente y externo al informe), y as pode realizar filtros dependiendo de nuestra conveniencia, para crear un parmetro en nuestro informe se deber hacer lo siguiente: CREAR UN NUEVO INFORME CON EL NOMBRE: RptCliente2 CON LA MISMA ESTRUCTURA DEL INFORME RptCliente1 Exactamente con la misma estructura (Obligatorio). ABRIR EL INFORME RptCliente2, en el modo Main Report (Modo Diseo) observar la ventanita Field Explorer, y hacer click derecho sobre la opcin: Parameter Fields y seleccionar la opcin New e ingrese el nombre del parmetro con su respectivo tipo de dato, As como se muestra en la imagen:

Luego procederemos a ingresar el nombre del parmetro en este caso ser: ESTADOX cuya descripcin ser: Solo para Filtrar Por Estados de Clientes, por ultimo seleccionar el tipo de dato del parmetro, este debe tener parentesco con el campos de la tabla a la cual se va a comparar, ya que en nuestro ejemplo la tabla del informe es CLIENTE, y el campo a usar es ESTADO Varchar (5), el tipo Varchar es equivalente a String. Luego hacemos click en el botn OK. Despus se observara que el parmetro ha sigo agregado como se observa en la segunda imagen.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 55

Ahora debemos crear una Seleccin de Formula de registro (Selection Formula Record) se debe hacer click derecho sobre cualquier area de nuestro informe y elegir las opciones: Report Selection Formula Record as como se muestra en la imagen.

Es aqu donde seleccionamos el campo Estado de la tabla Cliente, y lo comparamos con el parmetro ESTADOX, esta comparacin se observara abajo. Luego verificamos sintaxis con el botn X+2 si todo es correcto entonces Cerramos y Grabamos con el botn Save and close.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 56

Luego cerramos el informe y agregamos un formulario nuevo (FrmReporte2). Aqu debe tener ciertos elementos para que se cumpla el objetivo: un CrystalReportViewer y dos Botones, primero agregue y seleccione el control CrystalReportViwer (pngale este nombre: Reporte2), en la propiedad Dock de este control, asignarle None de esa manera el control CrystalReportViewer ser movible sobre el formulario, luego use la propiedad DisplayGroupTree y asgnele False, e inmediatamente coloque 2 botones (Buttons) sobre el formulario: uno etiquetado: CLIENTES ACTIVOS y el otro CLIENTES BLOQUEADOS. Los nombres de los botones son: BtnActivo y BtnBloqueado. El Formulario Deber Quedar de la Siguiente Forma:

REPROGRAMANDO EL FORMULARIO Declarar las siguientes variables en modo pblico a nivel de formulario.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 57 Programando el BtnActivo Click (CLIENTES ACTIVOS)

Programando el BtnBloqueado Click (CLIENTES BLOQUEADOS)

EJECUTE EL FORMULARIO FrmReporte2 Y PRESIONE LOS BOTONES. CLIENTES ACTIVOS BLOQUEADOS CLIENTES

FIN-DE-LASEGUNDA-PARTE-DE-INFORMES En este tema de Informes, estos elementos llamados Parmetros no necesariamente deben ser creados en el mismo informe, por el contrario, estos podrn ser programados desde la aplicacin, es decir desde nuestro formulario, para ello requerimos a esta nueva base de datos: SERVICIOS4. Que tiene la siguiente estructura de tablas relacionadas.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 58

La tabla EMPLEADO tiene algunos columnas elementales para formar campos calculados por ejemplo: el campo SEXO, con el se podr distinguir a varones de damas, el campo SUELDO, con el cual podemos obtener clculos como el Essalud, Seguros Pensionarios como AFP u ONP, aportaciones y descuentos entre otros. INGRESE DATOS A LA TABLA EMPLEADO DESDE ESTE FORMULARIO, EL CUAL BIENE INCORPORADO EN ESTE MANUAL. Despus de almacenar algunos registros a la tabla EMPLEADO, procederemos a crear un nuevo proyecto en Visual Basic Net, nombre como SERVICIOS4, dejando el formulario que se presenta vacio, y luego agregar un CrystalReport o informe con el nombre: RptCliente3, el cual contendr una determinada estructura, es decir Campos Calculados con los siguientes Nombres: Edad: Edad del Empleado. EstadoE: Estado del Empleado. FechaNa: Fecha de Nacimiento en Verbo. Seguro: Pago del Seguro AHORA A CREAR NUESTRO INFORME

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 59 Las tablas que se usan en el informe son: EMPLEADO, DEPARTAMENTO, PROVINCIA Y DISTRITO, debern estar relacionas. Y todos los campos de las tablas agregados. EL DISEO DEL INFORME ES EL SIGUIENTE:

Nuestro informe debe tener este aspecto, procurar desplazar los campos necesarios a nuestro informe, as como se explico en el ejemplo anterior, por otra parte el informe debe contar con algunos campos calculados (FechaNa, Edad, Seguro, ONP, EstadoE, BonEx, y TOTAL) los cuales debern estar unos en DATOS PERSONALES y otros en la parte inferior de la foto. Un campo calculado es fcilmente reconocido, observe en el informe aquellas columnas que empiezan con arroba @, lo vio? Y los campos normales de tablas no las llevan. LA PROGRAMACION DE LAS Formulas Fields (Campos Calculados) SON LAS SIGUIENTES: Bonificacin Extra (BonEx) el cual ser un medio sueldo, solo si ganan a partir de 2000.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 60

Fecha de Nacimiento en Verbo (FechaNa)

Edad del Empleado (Edad)

Estado del Empleado en Verbo (EstadoE)

ONP el cual ser un 13% del haber mensual.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 61

Seguro el cual ser un 19% del haber mensual.

TOTAL a recibir.

En el formulario que se encuentra vacio y si no fuera el caso agregue uno nuevo (FrmReport4), proceda a disearlo con la siguiente estructura:

CrystalReportVi

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 62

Estructura del formulario: GRAFICAS DETALLES A CONSIDERAR DE OBJETOS EN LAS GRAFICAS Caja de Texto TxtIdE y un Botn Btn1 (Ejecutar) La primera casilla se llamara: TxtS1 y un Botn Ejecutar Nombrado: BTn5 La Segunda casilla se llamara: TxtS2 y un botn ejecutar Nombrado: Btn6 La Casilla se llamara: TxtNombre y un Botn Ejecutar nombrado Btn2 Primer Combo Llamado: CboSexo y un Botn Ejecutar Nombrado Btn7 Segundo Combo Llamado: CboEstado y un Botn Ejecutar Nombrado Btn8 Primer Control Fecha MaskedTextBox Nombrado: TxtF y un Primer Botn Ejecutar Nombrado: Btn3 Segundo Botn Ejecutar Nombrado: Btn4 Segundo Control Fecha MaskedTextBox Nombrado: TxtF1 Tercer Control Fecha MaskedTextBox Nombrado: TxtF2 AHORA A PROGRAMAR EL FORMULARIO Agregar el Espacio System.Data.SqlClient y en las declaraciones del formulario FrmReport4 defina la variable conexin Cn. Luego proceda a crear un sub programa llamado EjecutarInforme con el Parmetro CADENA de tipo String. Este parmetro contendr el filtro programado para nuestro informe.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 63

Botn Ejecutar Btn1 Evento Click

Botn Ejecutar Btn2 Evento Click

Botn Ejecutar Btn3 Evento Click

Botn Ejecutar Btn4 Evento Click

Botn Ejecutar Btn5 Evento Click

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 64

Botn Ejecutar Btn6 Evento Click

Botn Ejecutar Btn7 Evento Click

Botn Ejecutar Btn8 Evento Click

AL EJECUTAR NUESTRO FORMULARIO DEBERA QUEDAR ASI:

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 65

Informes de Tipo Estadstico


En este segmento es necesario saber qu es lo que se va a pre visualizar, para crear un informe de esta modalidad, se requieren datos exclusivamente de tipo numrico (Datos que se van a mostrar) y algunas etiquetas en referencia a dichos datos. Nuestra Tabla Empleado, de la base de datos SERVICIOS4, tiene un campo numrico: Sueldo, con el podemos trabajar y el cual muestre: Quien Gana Ms Separar los Sueldos de acuerdo al Genero (Sexo), debemos tomar en cuenta que este tipo de informes requiere obligatoriamente agrupaciones (Groups) para su presentacin. SEGUIR LOS SIGUIENTES PASOS: En el proyecto actual SERVICIOS4 de Visual Basic Net, agregaremos un nuevo informe llamado Estadistica1.Rpt, el cual solo tendr algunos campos de la tabla Empleado: SUELDO y SEXO, (aunque podran ir todos los campos de la tabla) estos debern ser seleccionados y agregados en los pasos para la construccin del informe. Entre estos dos campos el que agrupara ser el campo SEXO, y luego indicar el criterio del agrupamiento el cual ser pedir la suma de los Sueldos. Construyamos el informe hasta el paso de la seleccin de campos, es ah donde debemos seleccionar en un apartado el grupo y la sumatoria de los sueldos.

Seleccionar los campos Sexo y Sueldo

lordserafan@hotmail.com

Seleccion ar Todos los Campos

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 66

En estas dos grficas se observa la seleccin de campos, en una (Izquierda) grfica solo los campos que nos interesan y en la otra (Derecha) grfica todos los campos de la tabla Empleado, Con cualquiera de las dos se puede trabajar. Hacer click en el botn Next > (Siguiente) En esta nueva ventana (A) debemos seleccionar el campo de agrupamiento, el cual ser Sexo. Y en la ventana (B) Debemos aplicar el criterio del agrupamiento que ser la suma de los sueldos. Luego hace Click en Next> (Siguiente). De ambas ventanas para avanzar al siguiente paso.

Aqu el Campo que Agrupara los datos ser el campo SEXO.

Aqu se debe aplicar e l criterio del Grupo el cual ser la sumatoria de los sueldos.

En esta ventana (A) debemos indicar el tipo de ordenamiento del grupo, bueno recomendable que se el campo grupo que es el campo SEXO, en la parte inferior de la grafica existen opciones de ordenamiento, el cual indicaremos None (Ninguno) y click en NEXT > (Siguiente) el pasara a la otra ventana (B), aqu indicaremos el tipo de Grafico Estadstico que tendr nuestro informe y adems colocaremos un titulo (SUELDOS SEGUN GENERO) al informe, y si observa bien los campos seleccionados indicados. Uno ser, sobre el cambio de: y el otro ser para el sumario. Hacer click en FINISH > (Finalizar).

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 67 Cuando finalizamos el diseo (Main Report) del reporte se visualiza (Izquierda) de la siguiente manera, y en la otra ventanita (Derecha) se observa la pre visualizacin del informe (Main Report Preview) segn los datos de la tabla Empleado.

Aqu nuestro informe est casi terminado, se requiere realizar algunos cambios, por ejemplo los campos que se muestran en la parte inferior del informe (Izquierda) se observa que esos campos en cierto modo no son necesarios para nuestro informe, estos datos se pre visualizan (Derecha) mostrando los datos de la tabla Empleado, por el momento innecesarios. Por lo tanto procederemos a removerlos, en caso contrario decidir si estos campos son o no necesario para el informe, en este ejercicio los removeremos.

Luego juntar las barras de divisiones del informe esto se har en el modo diseo (Main Report), y pre visualizamos el informe (Main Report Preview) para ver cmo queda Preview Main Report Main Report

Barras divisorias esta debe quedar juntas.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 68

Cambiar Algunas Caractersticas Del Grfico


Por ejemplo: si se desea cambiar la grfica a tipo pie (Torta) se haran los siguientes pasos: En modo Main Report, Click derecho sobre la Grfica y observar la ventana emergente: la opcin Format Object cambia alguna caractersticas del grafico por ejemplo: color de lnea de marco, color de fondo, entre otros, la opcin Chart Expert permite cambios en la forma del Grafico, es en esta opcin es donde se podr especificar el tipo Pie (Torta) y algunas caracterstica adicionales como: Ttulos de Grfico, Sub ttulos Datos y grupos. Y la opcin Char Options, el cual permitir afinar la presentacin de los grficos, por ejemplo: colocar las etiquetas de los datos dentro o fuera de las imgenes, grfica Tridimensional, alineacin de algunos elementos de la grfica, esto permitir darle a nuestro informe una mejor presentacin.

Ahora nuestro informe estadstico tendr una nueva forma: Main Report Main Report Preview

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 69

Supongamos que queremos separar las partes del Grafico Pie, hacemos click derecho sobre el Grafico, estando en el modo Main Report, y Seleccionamos la opcin Chart Options - > luego la sub opcin General. As como se muestra en la Grafica (A). En la Grafica (B) estando en la pestaa General, empezamos a mover los pequeos despliegues de: Tilt (Giro Vertical de Profundidad), Depth (Grosor de la profundidad), Rotation (Rotacin de objeto), Explode (Explosin del objeto)

Con respecto a las otras pestaas (Layout) facilita ciertas caractersticas a la grfica, y la Pestaa (DataLabels) el cual puede cambiar algunas cosas en la grafica como: etiquetas, valores porcentuales, elementos dentro o fuera de la imagen etc.

La pestaa (Numbers) determina el estilo de numeracin en la grafica. La pestaa (Lock) es solo referida a las legendas, es decir mejora la presentacin de la misma

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 70

La Pestaa (Display Status) permitir mostrar la legenda del informe, mostrar etiqueta sobre la legenda y el nombre de la grafica.

Nuestro Informe Grafico quedara con la siguiente apariencia, despus de realizar las modificaciones: Main Report Preview Main Report

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 71 Agregar un nuevo formulario al proyecto SERVICIOS4, y este tendr el siguiente Diseo:

CrystalReportViewer 1

Este formulario solo contiene un solo objeto y este es un control: CrystalReportViewer1, cuya propiedad DisplayGroupTree es False. PROGRAMAR EL FORMULARIO.

Al ejecutar el formulario se observara lo siguiente:

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 72

Acceder a Datos Desde Una DLL


(Dynamic Linking Library - Bibliotecas (Librera) de Enlace Dinmico). DLL es la implementacin de Microsoft del concepto de bibliotecas (libreras) compartidas en sistemas Windows y OS/2. Generalmente estas bibliotecas llevan la extensin ".dll" o ".ocx" (para aquellas que contienen controles ActiveX), o ".drv" (controladores de sistema). El formato de archivo para los DLL es el mismo que para los archivos EXE. Como en EXE, los DLL pueden contener cdigos, datos y recursos. Las aplicaciones suelen utilizar DLL propias y las que provee el sistema operativo, u otras aplicaciones. Las bibliotecas DLL seran una evolucin de las bibliotecas estticas. Usarlos en el desarrollo de programas trae ciertas ventajas como: Reduccin del tamao de los archivos ejecutables: pues parte del cdigo puede estar en las bibliotecas y no en el ejecutable. Compartir bibliotecas entre aplicaciones. Facilitar la gestin y aprovechar la memoria del sistema. Brindar flexibilidad frente a cambios: la solucin de errores o la implementacin de mejoras puede solucionarse slo con distribuir una nueva versin de la biblioteca. Esta correccin, en general, ser vlida para todas las aplicaciones que la utilicen. Con respecto a este ltimo punto, cabe sealar que no siempre las modificaciones son compatibles con todos los programas. Es ms, existen aplicaciones que al ser instaladas, reemplazan algunos DLL por versiones viejas o incompatibles para otras aplicaciones. Tambin puede pasar que algunas aplicaciones al ser desinstaladas, eliminen DLL de otras aplicaciones.

BIBLIOTECA DE CLASES
La biblioteca de clases base (BCL) es la parte de .NET Framework que define todos los tipos de datos bsicos, tales como System.Object (raz de la jerarqua de objetos .NET), tipos numricos y de fechas, tipo string, matrices y colecciones. La BCL contiene tambin clases que administrarn las caractersticas centrales de .NET: entrada/salida de archivos , subprocesamiento, serializacin y seguridad. La forma en la que los tipos se implementan en la BCL siguen las especificaciones llamadas Common Type System (CTS). Por ejemplo, estas especificaciones dicta la forma en

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 73 la que un tipo .NET expone campos, propiedades, mtodos y sucesos, tambin cmo un tipo puede heredar otro tipo... Tranquilo... a lo largo del tema veremos estas clases y por fuerza trabajaremos con ellas porque todo en .NET son clases: desde un grfico, un botn o nuestro programa.

Para demostrar cmo trabaja una biblioteca de clases DLL, se requiere una base de datos (SERVICIOS5) con la siguiente estructura de tablas:

Este modelo relacional permitir el mantenimiento de CLIENTE EMPLEADO de una empresa, estos datos se almacenaran en la tabla 1 PERSONAS, esto ser diferenciado por el (Campo Tipo), y a su vez eso controlara nuestra aplicacin basada en DLL.

EMPEZAR A CREAR NUESTRA DLL


Ingresemos a Visual Basic NET, y crearemos un proyecto orientado a Bibliotecas de Clase, llamado MiDll, cuya ubicacin ser el escritorio de Windows, as como se muestra en la Imagen:

4 lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 74

Al aceptar obtendremos a la siguiente ventana:

Aqu debemos hacer algunos cambios: el nombre de la clase es: Class1, esta debe ser cambiada por: Miclase. Y en la ventana del explorador de soluciones hacer lo mismo con el nombre del objeto.

Nombres normales de las clases

Cambiar en Propiedad: Nombre de Archivo: MiClase o puede hacerlo directamente. Grabe el Proyecto DLL en la carpeta MiDll (En el Escritorio) del paso
anterior haciendo clic en el botn Guardar Todo: Empecemos a Programar dicha biblioteca, agregando los siguientes espacios y codigos: ESTA PROGRAMACION PERTENECE A LA BIBLIOTECA DE CLASE

Cambiara el nombre de la clase y objeto por igual

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 75

Programar la siguiente funcin compartida (Usar Shared)

Programar la siguientes funciones Normales (Sin Shared)

Crear los siguientes Procedimientos Normales (Sin Shared)

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 76

Grabe el proyecto de biblioteca de clases y luego debemos Generar la DLL, esto se hace de la siguiente manera.

Despus de Generar la DLL, esta debe ser verificada su existencia, ya que al generarla se crea un archivo que llevara el mismo nombre del proyecto con la extensin Dll (MiDll.dll), para ello debemos abrir la carpeta del proyecto MiDll, luego la carpeta Bin finalizando la carpeta Debug.

1. Abrir la carpeta MiDll del Proyecto. lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 77 Abrir la Carpeta MiDll por segunda vez. Abrir la Carpeta Bin. Abrir la Carpeta Debug. Es donde es visible el archivo componente Midll.dll Nota: TENER PRESENTE SIEMPRE ESTO! Este archivo contiene todo el cdigo programado de la biblioteca de clases (Procedimientos y Funciones Compartidas) este deber se copiado y pegado en la carpeta DEBUG de cualquier proyecto de Visual Basic Net, y desde esa ubicacin ser invocado como referencia para su uso. Si en caso la DLL tuviera algn error de lgica, volver abrir el proyecto MiDll creado en VBNET y hacer los cambios necesarios, grabar y volver a generar la DLL, y nuevamente volver a copiar y pegar el archivo en la carpeta DEBUG del proyecto de biblioteca al proyecto que necesite a nuestra DLL.

2. 3. 4. 5.

DLL TERMINADA
CARACTERISTICAS DE LA DLL CREADA. Esta DLL est compuesta por: Una funcin compartida llamada CadenaConexion el posee un parmetro de entrada llamada CadenaC (Cadena de Conexin) es decir esta funcin lo que har es proveer a las dems funciones y procedimientos de nuestra DLL las conexiones respectivas con cualquier base de datos, debidamente configurada. Un Sub Programa Llamado Ejecutar, tiene 2 parmetros de entradas (CadenaSQL que significa la instruccin SQL, y CadenaC este contendr la cadena de conexin) el cual permitir la ejecucion de ciertos comandos SQL como por ejemplo: INSERT, DELETE, UPDATE, los cuales son necesarios para nuestro propsito. En base a nuestro proyecto que use a esta DLL. Una funcin ConsultarFiltrar, tiene 2 parmetros de entrada (Cadena este servir para contener la consulta o filtro a ejecutar y CadenaC este contendr la cadena de conexin) esta funcin permite generar consultas de un solo registro de datos o filtrar cierta cantidad de datos segn el criterio de bsqueda o filtro. Sub Programa GrabarFoto permitir grabar en la tabla una imagen, para ello se requiere el uso de 3 parmetros de entradas: (Id es el cdigo de la persona, IMAGEN el cual contendr la foto o imagen a la que se guardara, y CadenaC este contendr la cadena de conexin).

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 78 Funcin GENERADOR_CODIGO el cual permitir generar cdigo para cualquier tabla, esta funcin trabaja directamente sobre la tabla Generador, y posee 2 parmetros TABLA que representa el nombre de la tabla a generar cdigo, estos pueden ser: CLIENTE, EMPLEADO, PRODUCTO etc. y CadenaC este contendr la cadena de conexin. Sub Programa ActualizarGenerador, esta funcin es necesaria para el auto generacin de cdigos para cada tabla. Usa 2 parmetros: TABLA que representa el nombre de la tabla a generar cdigo, y CadenaC este contendr la cadena de conexin. La tabla Generador debe ser actualizada. Estructura Jerrquica de la DLL creada:

Proyecto: Clase:

Esta DLL ser invocada mediante una Instancia, desde un proyecto de aplicacin de Windows.

Public Shared Function


CadenaConexion
(ByVal CadenaC As String) As SqlConnection

Public Sub
Ejecutar (ByVal
CadenaSQL As String, ByVal CadenaC As String)

Public Function
ConsultarFiltrar
(ByVal Cadena As String, ByVal CadenaC As String) As DataTable

Public Sub
GrabarFoto
(ByVal Id As String, ByVal IMAGEN As Byte(), ByVal CadenaC As String)

CONTROLES USADOS:

Public Function
GENERADOR_CODIGO
String

(ByVal TABLA As String, ByVal CadenaC As String) As

Public sub
ActualizarGenerador

4 Cajas de Texto: TxtIdP (Cdigo), TxtNom (Nombre), TxtDNI (Dni), TxtDir


(Direccin)

5 Combos: CboTipo (Tipo) CboDep (Departamento), COMO USAR LA DLL, DESDE UN PROYECTO VBNET CboPro (Provincia), CboDis (Distrito), CboEstado Crear un Proyecto nuevo en Visual (Estado).Net, con el nombre: Basic SERVICIOS5, cuya ubicacin ser el escritorio de Windows: TxtFnacel 2 MaskedTextBox: disear siguiente formulario (Ejecute por lo menos una vez la aplicacin para (Fecha Nac), TxtFreg (Fecha Windows y Grabe Totalmente el proyecto). Reg). 1 PictureBox: PicFoto 1 OpenFileDialog: lordserafan@hotmail.com OpenFileDialog1

(ByVal TABLA As String, ByVal CadenaC As String)

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 79

PicFot

COMO EMPEZAR A USAR NUESTRA DLL Abrir la Carpeta DEBUG de los proyectos MiDll (Biblioteca de Clases) y SERVICIOS5 (El Otro proyecto de VBNET) en forma paralela, copiar y pegar el archivo DLL llamado: MiDll.dll hacia el otro proyecto quien lo va a usar. As como se muestra en la imagen Proyecto: Biblioteca de Clases MiDll SERVICIOS5 VBNET Proyecto:

Cuando este archivo sea pegado en la carpeta DEBUG de MiDll hacia la carpeta DEBUG de SERVICIOS5, entonces se podr iniciar la programacin del formulario.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 80 PROGRAMANDO EL FORMULARIO Agregar como referencia a nuestra DLL. Para ello se debe hacer click en la opcin PROYECTO y luego en la sub opcin AGREGAR REFERENCIA, as como se observa en la imagen:

Ahora debemos dirigirnos a la pestaa EXAMINAR y buscar el componente, dentro de la carpeta DEBUG de SERVICIOS5, es ah donde encontraremos el archivo que anterior mente fue pegado. Luego de seleccionarlo deber abrirlo. Haga click en ACEPTAR.

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 81

Cuando este componente ha sigo agregado como referencia a nuestro proyecto SERVICIOS5, este deber ser verificado, para ello haga click en el siguiente icono (Mostrar todos los archivos) de la ventana de soluciones:

Ahora ya estamos listos para empezar a programar el formulario!


Agregar los siguientes nombres de Espacios y declarar las siguientes variables:
Aqu est la lnea de cdigo que invoca a nuestra DLL, la variable es INSTANCIA y est declarada en modalidad pblica sobre el formulario, es decir todos los controles del formulario podrn usarla. Aparte la cadena de conexin (StrCon) tambin publica ya no ser un objeto SqlConnection, de aqu en adelante solo

En el entorno del formulario programar las siguientes procedimientos (Subs)

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 82

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 83

En el entorno del formulario programar las siguiente Funcin (Function)

Evento load del formulario

Botn Nuevo Evento Click

Botn Examinar Evento Click

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 84

Combo Departamento Evento TextChanged

Combo Provincia Evento TextChanged

Botn Grabar Evento Click


If VALIDAR() = True Then Try 'GRABAR LOS DATOS EN LA TABLA CLIENTE Dim Cdep As String = "" : Dim Cpro As String = "" : Dim Cdis As String = "" Dim TEMPO1 As DataTable = INSTANCIA.ConsultarFiltrar("SELECT IDDEP FROM DEPARTAMENTO " + _ " WHERE NOMBRE='" + CboDep.Text + "'", StrCon) If TEMPO1.Rows.Count > 0 Then Cdep = TEMPO1.Rows(0)(0).ToString Dim TEMPO2 As DataTable = INSTANCIA.ConsultarFiltrar("SELECT IDPROV FROM PROVINCIA " + _ " WHERE NOMBRE='" + CboPro.Text + "' AND IDDEP='" + Cdep + "'", StrCon) If TEMPO2.Rows.Count > 0 Then Cpro = TEMPO2.Rows(0)(0).ToString Dim TEMPO3 As DataTable = INSTANCIA.ConsultarFiltrar("SELECT IDDIST FROM DISTRITO " + _ " WHERE IDPROV='" + Cpro + "' AND NOMBRE='" + CboDis.Text + "'", StrCon) If TEMPO3.Rows.Count > 0 Then Cdis = TEMPO3.Rows(0)(0).ToString If CboTipo.Text = "CLIENTE" Then TxtIdP.Text = INSTANCIA.GENERADOR_CODIGO("CLIENTE", StrCon) If CboTipo.Text = "EMPLEADO" Then TxtIdP.Text = INSTANCIA.GENERADOR_CODIGO("EMPLEADO", StrCon) Dim SQL "','" + "','" + "','" + As String = "INSERT INTO PERSONAS VALUES('" + TxtIdP.Text + "','" + TxtNom.Text + _ TxtDni.Text + "','" + CboTipo.Text + "','" + TxtFNac.Text + "','" + TxtDir.Text + _ Cdep + "','" + Cpro + "','" + Cdis + "','" + TxtFreg.Text + "','" + CboSexo.Text + _ TxtSueldo.Text + "','" + CboEstado.Text + "',NULL)"

INSTANCIA.Ejecutar(SQL, StrCon)
'GRABAR FOTO If Sw = 1 Then GrabarFoto(TxtIdP.Text) Sw = 0 If CboTipo.Text = "CLIENTE" Then INSTANCIA.ActualizarGenerador("CLIENTE", StrCon) If CboTipo.Text = "EMPLEADO" Then INSTANCIA.ActualizarGenerador("EMPLEADO", StrCon) BtnNuevo.Text = "Nuevo" BtnGrabar.Enabled = False Bloquear(False) MsgBox("OK: PERSONA REGISTRADA SATISFACTORIAMENTE")

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 85


Catch Ex As Exception MsgBox("Error al Grabar " + Ex.ToString()) End Try Else MsgBox("Error: Para Grabar Todos los Objetos Deben Ser Rellenados") End If

Botn Consultar Evento Click


Dim CODIGO As String = InputBox("INGRESE CODIGO DE EMPLEADO:") If CODIGO.Length > 0 Then Dim DT As New DataTable DT = INSTANCIA.ConsultarFiltrar("SELECT * FROM PERSONAS " + _ " WHERE IDPERSONA='" + CODIGO + "'", StrCon) If DT.Rows.Count > 0 Then TxtIdP.Text = DT.Rows(0)(0).ToString : TxtNom.Text = DT.Rows(0)(1).ToString TxtDni.Text = DT.Rows(0)(2).ToString : CboTipo.Text = DT.Rows(0)(3).ToString TxtFNac.Text = DT.Rows(0)(4).ToString : TxtDir.Text = DT.Rows(0)(5).ToString Dim Cdep As String = DT.Rows(0)(6).ToString Dim Cpro As String = DT.Rows(0)(7).ToString Dim Cdis As String = DT.Rows(0)(8).ToString Dim TEMPO1 As DataTable = _ INSTANCIA.ConsultarFiltrar("SELECT NOMBRE FROM DEPARTAMENTO WHERE IDDEP='" + _ Cdep + "'", StrCon) If TEMPO1.Rows.Count > 0 Then CboDep.Text = TEMPO1.Rows(0)(0).ToString Dim TEMPO2 As DataTable = _ INSTANCIA.ConsultarFiltrar("SELECT NOMBRE FROM PROVINCIA WHERE IDPROV='" + _ Cpro + "' AND IDDEP='" + Cdep + "'", StrCon) If TEMPO2.Rows.Count > 0 Then CboPro.Text = TEMPO2.Rows(0)(0).ToString Dim TEMPO3 As DataTable = _ INSTANCIA.ConsultarFiltrar("SELECT NOMBRE FROM DISTRITO WHERE IDPROV='" + _ Cpro + "' AND IDDIST='" + Cdis + "'", StrCon) If TEMPO3.Rows.Count > 0 Then CboDis.Text = TEMPO3.Rows(0)(0).ToString TxtFreg.Text = DT.Rows(0)(9).ToString : CboSexo.Text = DT.Rows(0)(10).ToString TxtSueldo.Text = DT.Rows(0)(11).ToString : CboEstado.Text = DT.Rows(0)(12).ToString 'REVELAR IMAGEN If DT.Rows(0)(13) Is DBNull.Value Then Me.PicFoto.Image = Nothing Else Dim VALOR As Byte() = CType(DT.Rows(0)(13), Byte()) Dim MEMORIA As New MemoryStream(VALOR) Dim MAPABITS As New Bitmap(MEMORIA) Me.PicFoto.Image = MAPABITS : VALOR = Nothing End If BtnActualizar.Enabled = True : BtnNuevo.Enabled = True BtnNuevo.Text = "Cancelar" : BtnGrabar.Enabled = False BtnConsultar.Enabled = False : BtnActualizar.Text = "Editar" Else MsgBox("EMPLEADO NO ENCONTRADO") : LimpiarObjetos() : Bloquear(False) End If Else MsgBox("ERROR: DEBE INGRESAR UN CODIGO DE EMPLEADO") : LimpiarObjetos() Bloquear(False) End If

Botn Actualizar Evento Click


If BtnActualizar.Text = "Editar" Then BtnActualizar.Text = "Actualizar" : Bloquear(True) : BtnNuevo.Text = "Cancelar" BtnNuevo.Enabled = True Else If VALIDAR() = True Then Try Dim Cdep As String = "" : Dim Cpro As String = "" : Dim Cdis As String = "" Dim TEMPO1 As DataTable = INSTANCIA.ConsultarFiltrar("SELECT IDDEP FROM DEPARTAMENTO " + _ "WHERE NOMBRE='" + CboDep.Text + "'", StrCon) If TEMPO1.Rows.Count > 0 Then Cdep = TEMPO1.Rows(0)(0).ToString Dim TEMPO2 As DataTable = INSTANCIA.ConsultarFiltrar("SELECT IDPROV FROM PROVINCIA " + _ " WHERE NOMBRE='" + CboPro.Text + "' AND IDDEP='" + Cdep + "'", StrCon) If TEMPO2.Rows.Count > 0 Then Cpro = TEMPO2.Rows(0)(0).ToString Dim TEMPO3 As DataTable = INSTANCIA.ConsultarFiltrar("SELECT IDDIST FROM DISTRITO " + _ " WHERE IDPROV='" + Cpro + "' AND NOMBRE='" + CboDis.Text + "'", StrCon) If TEMPO3.Rows.Count > 0 Then Cdis = TEMPO3.Rows(0)(0).ToString Dim SQL As String = "UPDATE PERSONAS SET NOMBRE='" + TxtNom.Text + "',FNAC='" + _

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 86


TxtFNac.Text + "',DIR='" + TxtDir.Text + "',IDDEP='" + Cdep + "',IDPROV='" + _ Cpro + "',IDDIST='" + Cdis + "',FREG='" + TxtFreg.Text + "',Sexo='" + CboSexo.Text + _ "',Sueldo='" + TxtSueldo.Text + "',ESTADO='" + _ CboEstado.Text + "' WHERE IDPERSONA='" + TxtIdP.Text + "'"

INSTANCIA.Ejecutar(SQL, StrCon)

If Sw = 1 Then GrabarFoto(TxtIdP.Text) BtnNuevo.Text = "Nuevo" : BtnNuevo.Enabled = True : BtnGrabar.Enabled = False BtnConsultar.Enabled = True : BtnActualizar.Enabled = False : Bloquear(False) BtnActualizar.Text = "Editar" MsgBox("OK: PERSONA ACTUALIZADA SATISFACTORIAMENTE") Catch Ex As Exception MsgBox("Error al Actualizar " + Ex.ToString()) End Try Else MsgBox("Error: Para Actualizar Todos los Objetos Deben Ser Rellenados") End If End If

EJECUTAR EL PROYECTO Y OBSERVAR LOS RESULTADOS ((GRABAR))

((CONSULTAR))

((ACTUALIZAR))

lordserafan@hotmail.com

ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 87

lordserafan@hotmail.com

You might also like