Vous êtes sur la page 1sur 227

Universidad Autnoma de Quito

VISUAL BASIC 6.0


Iniciamos la programacin en Visual Basic 6.0, dando clic en Inicio, luego en todos los Programas, posteriormente vamos a Microsoft Visual Studio 6.0 y de ese men escogemos Microsoft Visual Basic 6.0.

Una vez que damos clic en Microsoft Visual Basic 6.0 ingresamos al entorno de Visual Basic 6.0

Universidad Autnoma de Quito

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos clic en Abrir, estando marcado Exe Estndar. De la ventana Nuevo Proyecto. Aparece el escritorio de trabajo de Visual Basic 6.0. Podemos distinguir el Men Principal, La barra de Clases, La ventana de Propiedades, La ventana de proyecto.

Tenemos en marcha pues un Proyecto, vamos a darle un nombre al proyecto, para lo cual marcamos Proyecto1 de la ventana de Proyectos y en la ventana o caja de Propiedades cambiamos el nombre, en este caso lo llamaremos UNAQ. Damos Enter.

Universidad Autnoma de Quito

Programacin Visual Basic 6.0 Jess Cisneros Valle

Nos queda: La palabra proyecto1 ha sido reemplazada por UNAQ.

Para cambiar el nombre del Formulario (Form1), marcamos el formulario y en la ventana de propiedades en CAPTION cambiamos el nombre del formulario.

Universidad Autnoma de Quito

Programacin Visual Basic 6.0 Jess Cisneros Valle

Se llamar Ejercicio 1. Y en el lugar donde esta Form1 (Nombre) de la misma ventana de Propiedades cambiamos Form1 y ponemos Ejer 1. Damos Enter.

Guardamos nuestro proyecto, dando clic en el disquete del men principal.

Universidad Autnoma de Quito

Programacin Visual Basic 6.0 Jess Cisneros Valle

Aparece la ventana Guardar archivo como,

En esta ventana nos trasladamos hasta la raz C:\> y creamos una carpeta. Con un nombre especfico para dentro de ella guardar nuestro proyecto.

Universidad Autnoma de Quito

Programacin Visual Basic 6.0 Jess Cisneros Valle

Por esta ocasin la carpeta llevar nuestro nombre, la abriremos y dentro de ella guardaremos nuestro proyecto y formulario.

Ponemos el nombre del proyecto (UNAQ) y guardamos.

Universidad Autnoma de Quito

Programacin Visual Basic 6.0 Jess Cisneros Valle

Cuando salga la ventana Control de cdigo fuente, por esta vez ponemos NO, as concluimos el almacenamiento de nuestro proyecto.

Vamos ahora a revisar lo que hemos hecho, yendo al C:\> donde est nuestra carpeta Jess. Vemos que tenemos 3 archivos, iremos pues a Herramientas, Opciones de Carpeta y damos clic.

Universidad Autnoma de Quito

Programacin Visual Basic 6.0 Jess Cisneros Valle

Elegimos de la ventana Opciones de Carpeta, la lengeta Ver y de esa ventana elegimos o desactivamos Ocultar las extensiones de archivo para tipos de archivos conocidos. Damos Aplicar y Aceptar.

Nos queda desactivada:

Universidad Autnoma de Quito

Programacin Visual Basic 6.0 Jess Cisneros Valle

Antes de proseguir borramos el archivo MSSCPRJ.SCC. Mejor dicho lo eliminamos.

Nos queda:

Universidad Autnoma de Quito

Programacin Visual Basic 6.0 Jess Cisneros Valle

Regresamos a nuestro Proyecto, y empezamos a trabajar en nuestro formulario. Ponemos Label y Cajas de Texto.

Ponemos el resto de label que necesitemos y marcando todas damos doble clic en Autosize (Propiedades) para que se ponga en TRUE a fin de que los label se ajusten al texto que vamos a poner o que hemos ya puesto:

Marcamos cada Label y cambiamos su nombre, esto lo hacemos en el CAPTION de la caja de Propiedades:

Universidad Autnoma de Quito

10

Programacin Visual Basic 6.0 Jess Cisneros Valle

Alineamos los Label a la derecha, para lo cual marcamos todos los label y luego vamos al men principal y elegimos Formato, luego alinear y por ltimo a la derecha,

Quedan perfectamente alineados a la derecha:

Universidad Autnoma de Quito

11

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ponemos los botones de Comando (Command Button) El botn Calcular y el Botn salir.

Debemos aclarar que para subrayar una letra de los botones de comando debemos usar & antes de la letra que queremos resaltar. Ejemplo &Calcular, aparecer resaltada o subrayada (acceso rpido) la letra C, as Calcular. Cabe recalcar que se deber escribir en el CAPTION de cada botn de comandos en la ventana Propiedades.

Universidad Autnoma de Quito

12

Programacin Visual Basic 6.0 Jess Cisneros Valle

Para borrar el contenido (Text1, Tex2, Tex3, etc.)de todas las cajas de texto debemos ir a cada de texto y en la venta de Propiedades borramos de Text la palabra Text1, Text2 sucesivamente.

De esta manera todas las cajas de texto aparecen en blanco:

Universidad Autnoma de Quito

13

Programacin Visual Basic 6.0 Jess Cisneros Valle

Para limitar el largo del nmero que ingresaremos a las cajas de texto podemos usar MAXLENGTH en donde escribiremos el largo mximo del nmero en este caso para trabajo1, trabajo2, trabjo3 y examen ponemos 2.

Para el 60%, 40% y el promedio podemos poner 5 ya que utilizaremos decimales. Y GUARDAMOS

Universidad Autnoma de Quito

14

Programacin Visual Basic 6.0 Jess Cisneros Valle

Antes de empezar a programar los botones de comando ponemos un botn de comando ms. El Botn Limpiar.

Universidad Autnoma de Quito

15

Programacin Visual Basic 6.0 Jess Cisneros Valle

PROGRAMANDO BOTONES. Una vez que hemos realizado todos los cambios que estimemos pertinentes en el formulario actual, programamos los botones de Comando uno por uno. Damos doble clic en Calcular y programamos el botn: Private Sub Command1_Click() Dim pro1, pro2 As Single 'rem PONE COMENTARIOS pro1 = ((Val(Text1.Text) + Val(Text2.Text) + Val(Text3.Text)) / 3) * 0.6 pro2 = Val(Text4.Text) * 0.4 Text5.Text = pro1 Text6.Text = pro2 Text7.Text = Round((pro1 + pro2), 0) 'permite poner decimales End Sub Programamos el Botn Limpiar: El botn comando Salir: Private Sub Command2_Click() Unload Me End Sub Private Sub Command3_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" Text1.SetFocus End Sub Para poder trasladarnos de una caja de texto a otra usando el tab o enter programamos en el Formulario, para lo cual damos doble clic en el formulario y elegimos Keypress

Universidad Autnoma de Quito

16

Programacin Visual Basic 6.0 Jess Cisneros Valle

La programacin del formulario nos queda: Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then ' permite activar el tab y el enter SendKeys "{tab}" KeyAscii = 0 End If End Sub Si queremos programar el Label1 podemos poner: A fin de que aparezca un mensaje que nos informe que hace referencia el Label1. Private Sub Label1_Click() MsgBox ("Nota 1 de trabajos") End Sub CREAR PROCEDIMIENTOS: Vamos a crear un procedimiento, este se llamar validar. Estando en la programacin vamos a Herramientas del men principal y elegimos Agregar procedimiento. Y le ponemos un nombre al procedimiento se llamar validar.

Damos aceptar para que se cree el procedimiento:

Universidad Autnoma de Quito

17

Programacin Visual Basic 6.0 Jess Cisneros Valle

Automticamente se crea un nuevo objeto llamado: Public Sub validar()

Ahora dentro del procedimiento validar, crearemos la validacin para que ingresen valores mayores de cero y menores o iguales de 20. Esto lo hacemos para las cajas de texto que validemos:

Public Sub validar() If Val(Text1.Text) < 0 Or Val(Text1.Text) > 20 Then MsgBox ("Las notas deben ser mayor a 0 y menor o igual a 20"), vbInformation Text1.Text = "" Text1.SetFocus End If If Val(Text2.Text) < 0 Or Val(Text2.Text) > 20 Then MsgBox ("Las notas deben ser mayor a 0 y menor o igual a 20"), vbInformation Text2.Text = "" Text2.SetFocus End If If Val(Text3.Text) < 0 Or Val(Text3.Text) > 20 Then MsgBox ("Las notas deben ser mayor a 0 y menor o igual a 20"), vbInformation Text3.Text = "" Text3.SetFocus End If If Val(Text4.Text) < 0 Or Val(Text4.Text) > 20 Then MsgBox ("Las notas deben ser mayor a 0 y menor o igual a 20"), vbInformation Text4.Text = "" Text4.SetFocus End If End Sub Universidad Autnoma de Quito

18

Programacin Visual Basic 6.0 Jess Cisneros Valle

Para poder llamar al PROCEDIMIENTOO VALIDAR, en cada caja de texto llamamos al procedimiento usando CALL. Private Sub Text1_Change() Call validar End Sub Private Sub Text2_Change() Call validar End Sub Private Sub Text3_Change() Call validar End Sub Private Sub Text4_Change() Call validar End Sub Por ultimo validaremos cada caja de texto para evitar se ingresen caracteres en lugar de nmeros. Es decir en las cajas de texto solo ingresaran nmeros: Private Sub Text1_KeyPress(KeyAscii As Integer) If IsNumeric(Chr(KeyAscii)) <> True Then KeyAscii = 0 ' NO permite el ingreso de caracteres End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) If IsNumeric(Chr(KeyAscii)) <> True Then KeyAscii = 0 End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) If IsNumeric(Chr(KeyAscii)) <> True Then KeyAscii = 0 End Sub Private Sub Text4_KeyPress(KeyAscii As Integer) If IsNumeric(Chr(KeyAscii)) <> True Then KeyAscii = 0 End Sub Para ejecutar el programa debemos ir a la men principal y dar clic en el icono INICIAR.

Universidad Autnoma de Quito

19

Programacin Visual Basic 6.0 Jess Cisneros Valle

Una vez que damos clic aparece el formulario en tiempo de ejecucin:

Ingresamos datos y hacemos clic en Calcular:

Universidad Autnoma de Quito

20

Programacin Visual Basic 6.0 Jess Cisneros Valle

La programacin de ste formulario nos quedara: Private Sub Command1_Click() Dim pro1, pro2 As Single pro1 = ((Val(Text1.Text) + Val(Text2.Text) + Val(Text3.Text)) / 3) * 0.6 pro2 = Val(Text4.Text) * 0.4 Text5.Text = pro1 Text6.Text = pro2 Text7.Text = Round((pro1 + pro2), 0) ' permite redondear un valor decimal a su inmediato superior End Sub Private Sub Command2_Click() Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = Text6.Text = Text7.Text = Text1.SetFocus End Sub Private Sub Command3_Click() Unload Me End Sub Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then SendKeys {tab} KeyAscii = 0 End If End Sub Private Sub Label1_Click() MsgBox (No molestes) End Sub Public Sub validar() If Val(Text1.Text) < 0 Or Val(Text1.Text) > 20 Then MsgBox (La nota debe ser mayor a 0 y menor o igual a 20), vbInformation Text1.Text = Text1.SetFocus End If If Val(Text2.Text) < 0 Or Val(Text2.Text) > 20 Then MsgBox (La nota debe ser mayor a 0 y menor o igual a 20), vbInformation Text2.Text = Text2.SetFocus End If If Val(Text3.Text) < 0 Or Val(Text3.Text) > 20 Then MsgBox (La nota debe ser mayor a 0 y menor o igual a 20), vbInformation Text3.Text = Text3.SetFocus End If If Val(Text4.Text) < 0 Or Val(Text4.Text) > 20 Then MsgBox (La nota debe ser mayor a 0 y menor o igual a 20), vbInformation Text4.Text = Text4.SetFocus End If End Sub

Universidad Autnoma de Quito

21

Programacin Visual Basic 6.0 Jess Cisneros Valle

Private Sub Text1_Change() Call validar End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If IsNumeric(Chr(KeyAscii)) <> True Then KeyAscii = 0 End Sub Private Sub Text2_Change() Call validar End Sub Private Sub Text3_Change() Call validar End Sub Private Sub Text4_Change() Call validar End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) If IsNumeric(Chr(KeyAscii)) <> True Then KeyAscii = 0 End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) If IsNumeric(Chr(KeyAscii)) <> True Then KeyAscii = 0 End Sub Private Sub Text4_KeyPress(KeyAscii As Integer) If IsNumeric(Chr(KeyAscii)) <> True Then KeyAscii = 0 End Sub

Universidad Autnoma de Quito

22

Programacin Visual Basic 6.0 Jess Cisneros Valle

PROYECTOS CON BASES DE DATOS (Access)


Usaremos Access para crear nuestras bases de datos en Visual Basic 6.0, iniciaremos creando nuestro formulario.

El proyecto se llamar ALUMNOS.

Universidad Autnoma de Quito

23

Programacin Visual Basic 6.0 Jess Cisneros Valle

El nombre del formulario ser Manten.

Ponemos los label y ponemos las caractersticas de cada uno: Cdula, nombre, direccin y telfono:

Universidad Autnoma de Quito

24

Programacin Visual Basic 6.0 Jess Cisneros Valle

Usamos el AUTOSIZE, alineamos los Label, ponemos las cajas de texto.

Insertamos los botones de comando y les ponemos los nombres que deseamos a cada uno de ellos: Grabar, consultar, eliminar, actualizar, limpiar y salir.

Universidad Autnoma de Quito

25

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos clic en el disquete y en C:\> creamos la carpeta Ejer2, donde guardaremos todos los archivos referentes a nuestro proyecto con bases de datos.

Guardamos el formulario:

Guardamos el Proyecto:

Universidad Autnoma de Quito

26

Programacin Visual Basic 6.0 Jess Cisneros Valle

Vamos ahora a abrir Access de Microsoft, para crear nuestra base de datos.

Vamos a elegir Nueva base de datos en blanco:

Universidad Autnoma de Quito

27

Programacin Visual Basic 6.0 Jess Cisneros Valle

Nos pedir el nombre de la base de datos, en esta caso se llamar unaq2007.mdb luego digitamos Crear. Debemos considerar que debemos poner nuestra base de datos dentro de la carpeta Ejer2 de C:\>.

Aparece la ventana que nos permite crear una tabla con vista de diseo. Damos doble clic en Crear una tabla con vista de diseo, para ir a la tabla que donde ingresaremos los nombres de los registros que necesitemos:

Universidad Autnoma de Quito

28

Programacin Visual Basic 6.0 Jess Cisneros Valle

Los componentes de nuestros campos sern: cedula, nombre, direccin, telfono.

Grabamos para guardar y nos pide el nombre de la tabla le pondremos en este caso el nombre clientes.

Universidad Autnoma de Quito

29

Programacin Visual Basic 6.0 Jess Cisneros Valle

Nos pedir definir una clave principal o primaria, cedula ser nuestra clave principal.

La clave principal tiene junto al nombre una llavecita para distinguirla.

Guardamos nuevamente de ser necesario y aceptamos los cambios que hayamos hecho. Para ingresar los datos vamos a la tabla clientes de nuestra base de datos unaq2007.mdb y damos doble clic en clientes.

Universidad Autnoma de Quito

30

Programacin Visual Basic 6.0 Jess Cisneros Valle

Aparece la tabla clientes sin datos y procedemos a ingresar datos en ella.

Ingresamos datos y los grabamos: Una vez hecho todo esto salimos de Access.

Vamos nuevamente a nuestro formulario y de la Barra de Clases elegimos la clase DATA.

Universidad Autnoma de Quito

31

Programacin Visual Basic 6.0 Jess Cisneros Valle

Colocamos la clase DATA en nuestro formulario. Visual Basic le asigna el nombre DATA1, por defecto.

En nuestra ventana de propiedades buscamos DATABASENAME. Y direccionamos la base de datos a la base que creamos en ACCESS y que est en la carpeta Ejer2. Damos Abrir para seleccionar la base de datos.

Universidad Autnoma de Quito

32

Programacin Visual Basic 6.0 Jess Cisneros Valle

Una vez que se ha diseccionado correctamente, aparece en DATABASENAME de la ventana de propiedades la base de datos direccionada queda registrada as: C:\>Ejer2\unaq2007.mdb.

Luego en la misma ventana de propiedades vamos a RECORD SOURCE y elegimos la tabla de donde extraeremos los datos de nuestra base de datos unaq2007.mdb. La tabla en este caso se llama clientes.

Es POSIBLE, que la base de datos no sea reconocida en el RECORD SOURCE, entonces debemos hacer: Universidad Autnoma de Quito

33

Programacin Visual Basic 6.0 Jess Cisneros Valle

IMPORTANTE: ES POSIBLE QUE VISUAL BASIC NO RECONOZCA LA BASE DE DATOS QUE HEMOS CREADO EN ACCESS, PARA QUE ESTO NO OCURRA (PUES CUANDO OCURRE NOS DA ERROR EN AL RECORD SOURCE AL TRATAR DE SELECCIONAR UNA TABLA) DEBEMOS CONVERTIR LA BASE DE DATOS A FORMATO ACCESS 97, ESTO LO HACEMOS: Abrimos la base de datos y cuando llegamos a las tablas:

Escogemos Herramientas del men Principal, convertir base de de datos y luego A formato de archivo Access 97.

Universidad Autnoma de Quito

34

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos un nuevo nombre (en este caso UNAQ) a la base y luego guardar: En la misma carpeta que hemos venido trabajando.

Nos sale una advertencia a la cual le damos simplemente Aceptar.

Universidad Autnoma de Quito

35

Programacin Visual Basic 6.0 Jess Cisneros Valle

En la carpeta Ejer2, aparece la base de datos convertida, esta es la base de datos que Visual Basic 6.0 reconocer sin problemas.

Repetimos los pasos anteriores y elegimos la nueva base de datos en el DATABASENAME de la ventana propiedades: No olvidemos borrar el DATA1 anterior y poner un nuevo DATA en el formulario.

Universidad Autnoma de Quito

36

Programacin Visual Basic 6.0 Jess Cisneros Valle

Luego de RECORD SOURCE elegimos la tabla clientes. Que ahora vemos que nos aparece sin problemas, de esta manera hemos relacionado la base de datos de Access con Visual Basic.

Universidad Autnoma de Quito

37

Programacin Visual Basic 6.0 Jess Cisneros Valle

PROGRAMACION DE BOTONES DE COMANDO EN VISUAL BASIC


BOTON CONSULTAR: Damos doble clic en el botn que hemos llamado CONSULTAR y nos aparece la interfaz en donde programaremos dicho botn. Lo que debemos escribir es: Private Sub Command2_Click() Dim errores As Variant On Error GoTo errores Data1.RecordSource = "select * from clientes where cedula ='" & Trim(Text1.Text) & "'" Data1.Refresh Text2.Text = Data1.Recordset("nombre") Text3.Text = Data1.Recordset("direccion") Text4.Text = Data1.Recordset("telefono") Data1.Recordset.Bookmark = Data1.Recordset.Bookmark Exit Sub errores: Select Case Err Case "3021" MsgBox Err.Description End Select End Sub En la interfaz de Visual Basic nos queda:

Universidad Autnoma de Quito

38

Programacin Visual Basic 6.0 Jess Cisneros Valle

BOTON GRABAR (ALTAS): Damos doble clic en el botn que hemos llamado GRABAR y nos aparece la interfaz en donde programaremos dicho botn. Lo que debemos escribir es: Private Sub Command1_Click() Data1.Recordset.AddNew Data1.Recordset("cedula") = Trim(Text1.Text) Data1.Recordset("nombre") = Trim(Text2.Text) Data1.Recordset("direccion") = Trim(Text3.Text) Data1.Recordset("telefono") = Trim(Text4.Text) Data1.Recordset.Update Call limpiar End Sub En la interfaz de Visual Basic nos queda:

Universidad Autnoma de Quito

39

Programacin Visual Basic 6.0 Jess Cisneros Valle

BOTON ELIMINAR (BAJAS): Damos doble clic en el botn que hemos llamado ELIMINAR y nos aparece la interfaz en donde programaremos dicho botn. Lo que debemos escribir es: Private Sub Command3_Click() If MsgBox("Est seguro de eliminar?", vbYesNo) = vbYes Then Data1.Recordset.Delete Call limpiar MsgBox ("Registro eliminado"), vbInformation Else MsgBox ("Registro no eliminado"), vbInformation End If End Sub

En la interfaz de Visual Basic nos queda:

Universidad Autnoma de Quito

40

Programacin Visual Basic 6.0 Jess Cisneros Valle

BOTON LIMPIAR: Damos doble clic en el botn que hemos llamado LIMPIAR y nos aparece la interfaz en donde programaremos dicho botn. El botn limpiar lo hemos programado como un PROCEDIMIENTO, para lo cual creamos el procedimiento limpiar desde el men principal. En el men Herramientas y elegimos Agregar procedimiento..

Luego ponemos en nombre al procedimiento en este caso limpiar. Para terminar de crearlo damos Aceptar.

Lo que debemos escribir dentro de nuestro procedimiento limpiar es: Public Sub limpiar() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text1.SetFocus End Sub

Universidad Autnoma de Quito

41

Programacin Visual Basic 6.0 Jess Cisneros Valle

BOTON ACTUALIZAR: Damos doble clic en el botn que hemos llamado ACTUALIZAR y nos aparece la interfaz en donde programaremos dicho botn. Lo que debemos escribir es: Private Sub Command4_Click() Data1.Recordset.Edit Data1.Recordset("cedula") = Trim(Text1.Text) Data1.Recordset("nombre") = Trim(Text2.Text) Data1.Recordset("direccion") = Trim(Text3.Text) Data1.Recordset("telefono") = Trim(Text4.Text) Data1.Recordset.Update Call limpiar End Sub En la interfaz de Visual Basic nos queda:

BOTON SALIR: Damos doble clic en el botn que hemos llamado SALIR y nos aparece la interfaz en donde programaremos dicho botn. Lo que debemos escribir es: Private Sub Command6_Click() Unload Me End Sub Universidad Autnoma de Quito

42

Programacin Visual Basic 6.0 Jess Cisneros Valle

SQL Server 2000


Ahora vamos a continuar con SQL Server 2000, que es una de las ms robustas herramientas de Base de Datos que conocemos. Si tenemos instalado SQL Server 2000, debemos ir a Iincio, luego Todos los Programas, posteriormente a Microsoft SQL Server y elegimos por ltimo Administrador de Servicios,

El Administrador de Servicios nos permite observar si la base de datos (SQL Server 2000) esta en ejecucin, si podemos observar que la flechita est de color verde, podemos decir que el servicio esta activado.

Universidad Autnoma de Quito

43

Programacin Visual Basic 6.0 Jess Cisneros Valle

Creemos primero una base de datos en Access para ver la diferencia de archivos al crear la misma base en SQL Server 2000. Ingresamos a Access y damos clic en Nuevo.

Una vez que damos clic en Nuevo al margen derecho se activa la ventana Archivo Nuevo, elegimos Nueva Base de Datos en Blanco y nos pide que ingresemos el nombre de la base.

Antes de dar el nombre a la Base, creamos una carpeta en C, donde guardaremos todos los archivos que creemos y le ponemos un nombre es este caso la carpeta se llamar Jess.

Universidad Autnoma de Quito

44

Programacin Visual Basic 6.0 Jess Cisneros Valle

Luego nos pide demos el nombre a la base, se llamar Unaq. Ponemos el nombre y damos aceptar en Crear.

Damos doble clic en Crear una tabla con vista de diseo.

Aparecen entonces los campos de una tabla (tabla1) en la cual detallaremos todos los campos que necesitemos.

Universidad Autnoma de Quito

45

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ponemos los campos: cedula, nombre, direccin y telfono:

Ponemos la clave principal, en este caso la clave ir a cedula.

Grabamos la tabla y le ponemos un nombre, se llamar clientes. Damos Aceptar para grabar.

Universidad Autnoma de Quito

46

Programacin Visual Basic 6.0 Jess Cisneros Valle

Cerramos la tabla y aparece la ventana Unaq Base de datos, en esta ventana escogemos nuestra tabla: clientes e ingresamos algunos datos:

Ingresando datos a la tabla nos queda:

Gradamos la tabla clientes:

Universidad Autnoma de Quito

47

Programacin Visual Basic 6.0 Jess Cisneros Valle

Guardamos la base de datos Unaq y cerramos Access. Para ver la base de datos Unaq, fsicamente vamos a la carpeta Jess de C:\> y podemos observar que se ha creado la base con la extensin .MDB.

Universidad Autnoma de Quito

48

Programacin Visual Basic 6.0 Jess Cisneros Valle

CREANDO UNA BASE DE DATOS EN SQL Server 2000 Ahora veremos como crear una base de datos en SQL Server 2000, con el mismo nombre de la base de datos de Access, es decir Unaq. Primero vamos a Microsoft SQL Server y elegimos Administrador Corporativo.

Aparece la ventana Raz de la consola, que contiene los servidores que estn activos en Microsoft SQL Server

Universidad Autnoma de Quito

49

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos clic en servidores Microsoft SQL Server y aparece una nueva parte de la raz llamada Grupo de SQL Server

Damos clic en Grupo de SQL Server y aparece una nueva parte de la raz llamada (local) (Windows NT)

Universidad Autnoma de Quito

50

Programacin Visual Basic 6.0 Jess Cisneros Valle

Al dar clic en (local) (Windows NT), aparecen sus componentes los cuales entre otros son: Bases de Datos, Servicios de Transformacin, Administracin, etc.

Verificamos si est activo el servicio para lo cual activamos la ventana Administracin de servicios SQL Server

Universidad Autnoma de Quito

51

Programacin Visual Basic 6.0 Jess Cisneros Valle

Vamos a la carpeta Base de datos, damos clic derecho sobre ella y elegimos Nueva BASE DE DATOS,

aparece la ventana Propiedades de la Base de Datos, en donde por defecto est activa la lengeta General en donde pondremos el nombre de la base de datos, en este caso Unaq.

Universidad Autnoma de Quito

52

Programacin Visual Basic 6.0 Jess Cisneros Valle

Vamos a la lengeta Archivo de Datos, y especificaremos la direccin fsica de la base de datos. La tenemos que poner en la carpeta Jess de la raz C:\>.

Damos clic en el cuadrito que est a la derecha de Unaq_Data y elegimos la ruta hasta la carpeta Jess. Y damos Aceptar.

Universidad Autnoma de Quito

53

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora vemos que la ruta ha sido aceptada y ya est registrada en la seccin Ubicacin:

Procedemos de la misma manera con la lengeta Registro de Transacciones.

Universidad Autnoma de Quito

54

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos doble clic en el cuadrito que est a la derecha de Unaq_Log, Buscamos la carpeta Jess y Aceptamos.

Ahora vemos que la ruta ha sido aceptada y ya est registrada en la seccin Ubicacin:

Universidad Autnoma de Quito

55

Programacin Visual Basic 6.0 Jess Cisneros Valle

Para terminar el proceso que hemos venido efectuando damos Aceptar en la ventana Propiedades de la Base de datos Unaq, que al momento est activa. Vamos a guardar estas rutas pues las podemos usar en cualquier ocasin, para lo cual en el Bloq de Notas, las pegamos una a una.

Una vez que cerramos la ventana Propiedades de la Base de datos Unaq, damos doble clic en la carpeta Base de Datos y ya aparece la Base de Datos llamada Unaq, con todos sus componentes.

Universidad Autnoma de Quito

56

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos clic derecho en el objeto tablas y elegimos Nueva Tabla

Al hacer esto nos aparece el entorno Tabla nueva en Unaq, en (local) donde ya podemos ingresar datos a nuestra tabla.

Universidad Autnoma de Quito

57

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ingresando los mismos datos que la tabla clientes de Access, nos queda:

Seleccionamos un registro como clave principal, en este caso ser cedula. Damos clic en Establecer Clave principal.

Universidad Autnoma de Quito

58

Programacin Visual Basic 6.0 Jess Cisneros Valle

Igual que en Access se activa junto a al registro que hemos elegido como clave una llavecita.

Una vez hecho esto, guardamos la tabla y le ponemos un nombre, se llamar: clientes. Y damos Aceptar

Universidad Autnoma de Quito

59

Programacin Visual Basic 6.0 Jess Cisneros Valle

Cerramos la tabla, y damos doble clic en el objeto tablas de la base de datos Unaq, y nos daremos cuenta que ya aparece la tabla que hemos creado con el nombre que le hemos datos clientes.

Damos clic derecho sobre la tabla clientes, luego elegimos Abrir tabla y escogemos Devolver todas las filas. Esto lo hacemos para ingresar los datos a la tabla.

Universidad Autnoma de Quito

60

Programacin Visual Basic 6.0 Jess Cisneros Valle

Aparece la interfaz en la cual podemos ingresar datos a nuestra tabla clientes:

La tabla con los datos nos quedar: Para cerrar la tabla clientes damos clic en la X.

Universidad Autnoma de Quito

61

Programacin Visual Basic 6.0 Jess Cisneros Valle

BACKUP DE UNA BASE DE DATOS


A veces es necesario realizar copias de seguridad a las bases de Datos, a continuacin como lo podemos hacer. Primero vamos la base de datos Unaq (Que es la base que queremos hacer Backup), damos clic derecho sobre ella y elegimos Todas las tareas y elegimos Copia de seguridad de Base de Datos

Aparece la ventana Copia de seguridad de SQL Server: Unaq.

Universidad Autnoma de Quito

62

Programacin Visual Basic 6.0 Jess Cisneros Valle

Seguidamente damos clic en Agregar y luego en el cuadrito que est a la derecha de Nombre de archivo.

Damos clic en el cuadrito, a fin de poder direccionar en donde queremos crear la copia de seguridad de la Base de Datos Unaq que hemos seleccionado. Direccionamos.

Universidad Autnoma de Quito

63

Programacin Visual Basic 6.0 Jess Cisneros Valle

Seguido damos un nombre a la base de datos, un nombre que la diferencia de la base de Datois Unaq que es la original, en este caso la llamaremos bacukpUNAQ y damos Aceptar.

En la ventana subsiguiente damos de igual manera Aceptar, ac ya podemos ver el direccionamiento de la copia de seguridad (backup) de la base de datos Unaq.

Universidad Autnoma de Quito

64

Programacin Visual Basic 6.0 Jess Cisneros Valle

Por ltimo damos Aceptar y automticamente se generar el backup de la base de datos Unaq. Damos Aceptar para terminar.

Para verificar la creacin del Backup de la Base de Datos Unaq, vamos a la raz C:\> y abrimos la carpeta Jess.

Universidad Autnoma de Quito

65

Programacin Visual Basic 6.0 Jess Cisneros Valle

RESTAURAR LOS DATOS DE UNA BASE DE DATOS A LA CUAL SE LE HA HECHO UN BACKUP


Primero creamos una Nueva base de datos en blanco. Vamos a la carpeta Base de Datos, damos clic derecho y elegimos Nueva base de datos

En la ventana Propiedades de la Base de Datos, ponemos un nombre a la Base de Datos. Se llamar UNAQ2009

Universidad Autnoma de Quito

66

Programacin Visual Basic 6.0 Jess Cisneros Valle

Sin cerrar la ventana Propiedades de la base de datos UNAQ2009, vamos a la lengeta Archivos de Datos. Y direccionamos la base de datos a nuestra carpeta Jess de C:\>

Lo hacemos tal cual lo hicimos anteriormente.

Universidad Autnoma de Quito

67

Programacin Visual Basic 6.0 Jess Cisneros Valle

Lengeta Registro de Transacciones.

Direccionamos igual a la carpeta Jess. Y para terminar damos Aceptar y listo ya esta la base de datos en blanco. OJO debemos copiar los dos direccionamientos en un bloc de notas para usar esa informacin posteriormente.

Universidad Autnoma de Quito

68

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora iremos a la base de datos UNAQ2009, damos clic derecho sobre ella, elegimos de la ventan que se abre Todas las tareas y luego Restaurar Base de Datos.

Aparece la ventana Restaurar Base de Datos..

Universidad Autnoma de Quito

69

Programacin Visual Basic 6.0 Jess Cisneros Valle

Elegimos entonces la opcin Desde dispositivos

Damos clic en el botn Dispositivos.. y se abre una nueva ventana llamada Elegir dispositivos para restaurar. De la cual elegimos el botn Agregar

Universidad Autnoma de Quito

70

Programacin Visual Basic 6.0 Jess Cisneros Valle

Aparece la ventana Seleccionar el destino de restauracin, vemos que aparece por defecto la carpeta Jess, damos clic en el cuadrito de la derecha de Nombre del archivo: Para buscar nuestra copia de seguridad llamada BackupUNAQ. Y que es la que queremos restaurar en la base de datos UNAQ2009.

Seleccionamos el Backup (backupUNAQ) y damos Aceptar a todas las ventanas. Pero OJO no debemos cerrar an la ventana Restaurar base de datos, pues debemos elegir la lengeta Opciones. Damos Aceptar en las ventanas que abrimos pero no cerramos la ventana Restaurar base de datos.

Universidad Autnoma de Quito

71

Programacin Visual Basic 6.0 Jess Cisneros Valle

Como vemos la ventana Restaurar base de datos, ya contiene la direccin del dispositivo BackupUNAQ.

Damos clic en la lengeta Opciones, y ya podemos visualizar la base de datos activa esta es Unaq. Con sus respectivas direcciones..

Universidad Autnoma de Quito

72

Programacin Visual Basic 6.0 Jess Cisneros Valle

ATENCION, Cuando creamos la base de datos Unaq2009, debemos copiar en un bloc de notas las dos direcciones
de la base de datos UNAQ2009. Direcciones de la ventana Propiedades de base de datos 2009 (Pag.68 y 67)

Acto seguido reemplazamos las direcciones con las direcciones de la base de datos UNAQ2009. Cada direccin respectivamente. Activamos Forzar restauracin sobre la base de datos existente y para terminar damos Aceptar.

Universidad Autnoma de Quito

73

Programacin Visual Basic 6.0 Jess Cisneros Valle

Al dar aceptar se inicia el proceso de restauracin de la base de datos. Desde el Backup a la B/D UNAQ2009.

Luego aparece la ventana que confirma que la restauracin ha sido un xito. Y damos Aceptar confirmando la restauracin. De esta manera la base de datos fue copiada y restaurada.

Universidad Autnoma de Quito

74

Programacin Visual Basic 6.0 Jess Cisneros Valle

Abrimos la base de datos UNAQ2009, y nos trasladamos al objeto tablas y luego a la tabla clientes.

Damos clic derecho sobre la tabla clientes, seleccionamos Abrir tabla y luego Devolver todas las filas. Hacemos esto a fin de abrir la tabla clientes y verificar si los datos del BackupUNAQ han sido trasladados a la base de datos UNAQ2009, tabla clientes.

Universidad Autnoma de Quito

75

Programacin Visual Basic 6.0 Jess Cisneros Valle

Una vez que se abre la tabla clientes de la base de datos UNAQ2009, vemos que todos los datos han sido trasladados del BackupUNAQ a la nueva base de datos UNAQ2009.

Si vamos a la carpeta Jess de C: podremos ver los archivos que hemos creado, las bases de datos UNAQ y UNAQ2009 de SQL Server 2000, el BackupUNAQ y la base de datos UNAQ de Access.

Universidad Autnoma de Quito

76

Programacin Visual Basic 6.0 Jess Cisneros Valle

USANDO VISUAL BASIC 6.0 Y SQL SERVER 2000


Vamos ahora a usar Visual Basic 6.0 para relacionarlo con SQL Server 2000, y usando esa base de datos utilizar la informacin que hay en ella. Crearemos primero un formulario.

Luego vamos al men principal, y elegimos Proyecto y elegimos del men que se despliega Referencias. Y damos clic en Referencias:

Universidad Autnoma de Quito

77

Programacin Visual Basic 6.0 Jess Cisneros Valle

Dentro de la ventana de Referencias, buscamos y activamos la referencia Microsoft ActiveX Data Objects 2.0 Library. Damos Aceptar.

Volvemos a Proyecto del men principal y elegimos Componentes,

Universidad Autnoma de Quito

78

Programacin Visual Basic 6.0 Jess Cisneros Valle

De la ventana de Componentes, escogemos Microsoft ADO Data Control 60. (OLEDB) Y damos Aceptar.

Al dar Aceptar, en la barra de clases, aparece un nuevo icono, que representa y permite usar ADO DATA

Universidad Autnoma de Quito

79

Programacin Visual Basic 6.0 Jess Cisneros Valle

Para nuestro ejercicio usaremos el objeto LISTBOX.

Colocaremos el ListBox, dentro de nuestro formulario.

Universidad Autnoma de Quito

80

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos clic en ADODC, que es el icono que recin instalamos, lo elegimos para colocarlos en nuestro formulario

Colocamos Adodc en el formulario,

Universidad Autnoma de Quito

81

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos clic derecho en el objeto Adodc1 y elegimos Propiedades

Aparece la ventana Pagina de Propiedades, damos Generar.

Universidad Autnoma de Quito

82

Programacin Visual Basic 6.0 Jess Cisneros Valle

Al dar clic en Generar aparece la ventana Propiedades de vnculo de datos.

De esa ventana escogemos Microsoft OLE DB Provider for SQL Server y damos Siguiente.

Universidad Autnoma de Quito

83

Programacin Visual Basic 6.0 Jess Cisneros Valle

Una vez dado Siguiente, aparece la ventana se activa la lengeta Conexin de la misma ventana Propiedades de vnculo de datos, y nos pide que ingresemos o seleccionemos el nombre de un servidor, en este caso el servidor es nuestra PC, por lo que ingresaremos el nombre de nuestra PC.

Para verificar la conexin de servidor de nuestra PC, damos clic e el Administrador de servicios de SQL Server y copiamos de all en nombre del servidor, que este caso es nuestra PC.

Universidad Autnoma de Quito

84

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora pondremos el nombre del usuario por defecto debemos poner sa inmediatamente seleccionamos Usar la seguridad integrada de Windows NT. Veremos como se opaca ciertos vnculos de esa ventana.

Seleccionamos el servidor. Usaremos la base de Datos que llamamos Unaq.

Universidad Autnoma de Quito

85

Programacin Visual Basic 6.0 Jess Cisneros Valle

Solo una vez que hemos seguido todos estos pasos probaremos la conexin. Damos clic en Probar conexin y esperamos la respuesta del sistema. Que nos dir si la conexin fue exitosa o no.

Damos Aceptar en la ventana Vnculos a datos de Microsoft, damos Aceptar en la ventana Propiedades de vinculo de datos, y nos quemamos en la ventana Pgina de propiedades. Donde podemos ver que en la ventanita Usar cadena de conexin ya aparece la conexin a nuestra base de datos. Para cerrar damos Aceptar.

Universidad Autnoma de Quito

86

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ponemos un botn de comando al cual llamaremos Mostrar registros.

Guardamos el formulario y proyecto. Con sus nombres por defecto solo es este caso ya que se puede poner nombres al formulario y al proyecto segn nuestras necesidades. Los guardaremos en nuestra carpeta Jess de C:>\ Damos doble clic en el formulario y seleccionamos General, para declarar las conexiones de Visual y SQL Server.

Universidad Autnoma de Quito

87

Programacin Visual Basic 6.0 Jess Cisneros Valle

Programamos el Form1 y la programacin es la siguiente: En Form (General) Dim cn As New ADODB.Connection ' esto crea en objeto de conexin Dim rs As New ADODB.Recordset ' creamos el objeto recordset Private Sub Command1_Click() 'copiamos la cadena de coneccion cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=Unaq;Data Source=USER-FB3BD5A8F6" rs.Source = "clientes" rs.CursorType = adOpenKeyset rs.LockType = adLockBatchOptimistic 'define el bloqueo rs.Open "select * from clientes", cn rs.MoveFirst ' movemos al primer registro Do Until rs.EOF 'agregamos los campos de la tabla List1.AddItem rs.Fields("cedula") & " " & rs.Fields("nombre") & " " & rs.Fields("direccion") & " " & rs.Fields("telefono") rs.MoveNext Loop End Sub La direccion de la base de datos Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=Unaq;Data Source=USER-FB3BD5A8F6, la copiamos de la ventana pagina de propiedades.

Universidad Autnoma de Quito

88

Programacin Visual Basic 6.0 Jess Cisneros Valle

Al ejecutar el programa dando clic en el botn Mostrar registros deber aparecer la informacin de la siguiente manera: Podemos borrar el Adodc1 si se necesario.

MOVERNOS POR LO REGISTROS DEL RECORDSET Crearemos un nuevo formulario dentro del mismo proyecto:

Universidad Autnoma de Quito

89

Programacin Visual Basic 6.0 Jess Cisneros Valle

Guardamos el proyecto y el formulario: Adems creamos los label y cajas de texto as como los botones de comando para movernos por la base de datos Unaq y su tabla clientes.

NO OLVIDAR, que al insertar el Adodc1 en el formulario, debemos volver a conectarnos con la base de datos y la
direccin que arroje esa conexin la debemos copiar en la programacin dentro del formulario. La programacin nos queda: ' En el formulario en (general) Dim cn As New ADODB.Connection ' esto crea en objeto de coneccin Dim rs As New ADODB.Recordset ' creamos el objeto recordset 'Private WithEvents rs As ADODB.Recordset Private Sub Command1_Click() rs.MoveFirst ' movemos al primer registro Text1.Text = rs.Fields("cedula") Text2.Text = rs.Fields("nombre") Text3.Text = rs.Fields("direccion") Text4.Text = rs.Fields("telefono") End Sub Private Sub Command2_Click() Dim errores1 As Variant On Error GoTo errores1 If rs.BOF = False Then rs.MovePrevious Text1.Text = rs.Fields("cedula") Text2.Text = rs.Fields("nombre") Text3.Text = rs.Fields("direccion") Text4.Text = rs.Fields("telefono") End If Universidad Autnoma de Quito

90

Programacin Visual Basic 6.0 Jess Cisneros Valle

Exit Sub errores1: Select Case Err Case "3021" MsgBox Err.Description End Select End Sub Private Sub Command3_Click() Dim errores As Variant On Error GoTo errores If rs.EOF = False Then rs.MoveNext Text1.Text = rs.Fields("cedula") Text2.Text = rs.Fields("nombre") Text3.Text = rs.Fields("direccion") Text4.Text = rs.Fields("telefono") End If Exit Sub errores: Select Case Err Case "3021" MsgBox Err.Description End Select End Sub Private Sub Command4_Click() rs.MoveLast Text1.Text = rs.Fields("cedula") Text2.Text = rs.Fields("nombre") Text3.Text = rs.Fields("direccion") Text4.Text = rs.Fields("telefono") End Sub Private Sub Command5_Click() rs.Close cn.Close End End Sub Private Sub Form_Load() 'copiamos la cadena de coneccion cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=Unaq;Data Source=USER-FB3BD5A8F6" rs.Source = "clientes" rs.CursorType = adOpenKeyset rs.LockType = adLockBatchOptimistic 'define el bloqueo rs.Open "select * from clientes", cn rs.MoveFirst ' movemos al primer registro Text1.Text = rs.Fields("cedula") Text2.Text = rs.Fields("nombre") Text3.Text = rs.Fields("direccion") Text4.Text = rs.Fields("telefono") End Sub Private Sub rs_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) If rs.BOF = True Then Universidad Autnoma de Quito

91

Programacin Visual Basic 6.0 Jess Cisneros Valle

rs.MoveFirst ElseIf rs.EOF = True Then rs.MoveLast Else Text1.Text = rs.Fields("cedula") Text2.Text = rs.Fields("nombre") Text3.Text = rs.Fields("direccion") Text4.Text = rs.Fields("telefono") End If End Sub

El primer registro:

El ltimo registro:

Uno de los registros intermedios:

Otro de los registros intermedios:

Universidad Autnoma de Quito

92

Programacin Visual Basic 6.0 Jess Cisneros Valle

UN NUEVO PROYECTO CON BASE DE DATOS


Primero determinamos una carpeta que contenga la base y los programas de la base de datos. La carpeta la creamos en C:\, con el nombre jesus1.

Dentro de la carpeta jesus1 vamos a crear dos carpetas: una llamada APP (contendr los programas de Visual Basic) y otra ADD (contendr la base de datos).

Universidad Autnoma de Quito

93

Programacin Visual Basic 6.0 Jess Cisneros Valle

Una vez creadas las carpetas, creamos la base de datos cuyo nombre ser UNAQ1. Vamos pues a SQL Server a crear la base de datos que llamaremos Unaq1.

Ponemos el nombre de la base de datos y direccionamos el Archivo de Datos y Registro de transacciones, OJO NO DAR ACEPTAR HASTA CONFIGURAR TODO EL DIRECCIONAMIENTO.

Universidad Autnoma de Quito

94

Programacin Visual Basic 6.0 Jess Cisneros Valle

Vamos ahora a Archivo de datos y direccionamos la base a la carpeta jesus1. Carpeta que fue creada en C:\>, en esta ventana si damos Aceptar para completar el direccionamiento.

Vamos ahora a Registro de transacciones y direccionamos la base a la carpeta jesus1, en esta ventana si damos Aceptar para completar el direccionamiento.

Universidad Autnoma de Quito

95

Programacin Visual Basic 6.0 Jess Cisneros Valle

Una vez completado el proceso de direccionamiento en la ventana Propiedades de la base de datos: UNaq1, damos ACEPTAR.

Listo creada la base de datos Unaq1.

Universidad Autnoma de Quito

96

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos clic derecho sobre unaq1 para crear una nueva tabla,

Ingresamos los nombres de los campos en la tabla, y ponemos la clave de la tabla en este caso la clave ser cedula.

Grabamos la tabla con el nombre alumnos. Damos aceptar. Y cerramos esta ventana con la X.

Universidad Autnoma de Quito

97

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos doble clic en tablas de la base de datos Unaq1, seleccionamos la tabla que creamos (alumnos), damos clic derecho, seleccionamos Abrir tabla y luego devolver todas las filas.

Esto nos permitir ver la tabla con sus respectivos campos, la tabla an no tiene datos. Ya la base ha sido creada.

Vamos ahora a VISUAL BASIC a crear un PROYECTO. Hacemos de principio un formulario. Form1.

Universidad Autnoma de Quito

98

Programacin Visual Basic 6.0 Jess Cisneros Valle

Vamos ahora al men Principal, elegimos Proyecto y aceptamos en Referencias.

Una vez que se abre la ventana Referencias, buscamos Microsoft Activex Data Objejects 2.0 Library y damos Aceptar.

Luego vamos otra vez al men Principal, elegimos Proyecto y aceptamos en Componentes.

Universidad Autnoma de Quito

99

Programacin Visual Basic 6.0 Jess Cisneros Valle

Una vez que se abre la ventana Componentes, buscamos Microsoft ADO Data Control 6.0 (OLEDB) y damos Aceptar.

Ahora ponemos las Cajas de Texto y en el (Nombre) ponemos un nombre referencias de cada una de las cajas, preferiblemente los nombre deben ser iguales a los nombres de las campos de la base de datos Unaq1. que se creo en SQL Server, en este caso especifico podemos poner txtxedula, txtapellidos, txtnombres, txtdirecion, txttelefono. En su respectiva Caja de texto.

Vamos ahora a MaxLength y ponemos el nmero de caracteres que se podr ingresar en la Caja de texto txtcedula.

Universidad Autnoma de Quito

100

Programacin Visual Basic 6.0 Jess Cisneros Valle

Todos los valores de MaxLength, deben coincidir con los valores asignados en la base de datos a los campos de la tabla alumnos. Ponemos los Label y el formulario nos quedar mas o menos as:

Ahora grabaremos el formulario con un nombre, lo llamaremos Mantenimiento y al proyecto Unaq1. No Olvidemos direccionar el Formulario y el proyecto a la sub carpeta APP de la carpeta jesus1 de C:\>

Universidad Autnoma de Quito

101

Programacin Visual Basic 6.0 Jess Cisneros Valle

Guardando el proyecto como Unaq1.

Ponemos en Visual Basic, el nombre del proyecto, dando doble clic en

Cambiamos el nombre del formulario.

Universidad Autnoma de Quito

102

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora pondremos los botones de comando: Buscar, Nuevo/Grabar, Actualizar, Eliminar, Limpiar y Salir. A cada botn debemos cambiarle el (Nombre) y ponerle un nombre referencial como: cmdbuscar, cmdnuevo, cmdactualizar, cmdlimpiar, cmdsalir. Y en el Caption tambin ponemos los nombres de cada botn.

Listo todos los botones han sido cambiados el nombre y su Caption.

Universidad Autnoma de Quito

103

Programacin Visual Basic 6.0 Jess Cisneros Valle

Iniciamos en esta ocasin por el botn Limpiar. Damos doble clic y aparece la pantalla de programacin. Una vez en esta pantalla creamos un procedimiento

Lo llamaremos Limpiar y damos Aceptar.

Dentro de los ( ) del procedimiento Limpiar escribimos lo siguiente: frm as form.

Universidad Autnoma de Quito

104

Programacin Visual Basic 6.0 Jess Cisneros Valle

Vamos a insertar en el formulario el ADODB, para conectar la base de datos Unaq1 con el formulario Mantenimiento.

Como vemos elegimos propiedades, esto lo hacemos para direccionar nuestra base a este formulario. Damos clic en Generar

Elegimos Microsoft OLE DB Provider for SQL Server y damos siguiente.

Universidad Autnoma de Quito

105

Programacin Visual Basic 6.0 Jess Cisneros Valle

Del Administrador de servicios de SQL Server copiamos el nombre del servidor, en Nombre de usuario ponemos sa, y activamos el Usar la informacin para iniciar sesin en el servidor.

Seleccionamos la base de datos del servidor, que en este caso es Unaq1.

Universidad Autnoma de Quito

106

Programacin Visual Basic 6.0 Jess Cisneros Valle

Probamos la conexin: Damos Aceptar en todas las ventanas para cerrar este proceso.

Programamos el formulario: Damos doble clic y en la pantalla de programacin ponemos en GENERAL no en Load. Dim cn As New ADODB.Connection Dim rs As ADODB.Recordset

Universidad Autnoma de Quito

107

Programacin Visual Basic 6.0 Jess Cisneros Valle

Programamos el Load del formulario: cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Catalog=Unaq1;Data Source=USER-FB3BD5A8F6" Set rs = New ADODB.Recordset rs.Source = "Alumnos" rs.CursorType = adOpenKeyset rs.LockType = adLockOptimistic ' bloquea solo cuando esta usado rs.Open "select * from Alumnos", cn Security Info=False;User ID=sa;Initial

Programamos el procedimiento Limpiar, ponemos: For Each Control In frm.Controls If TypeOf Control Is TextBox Then Control.Text = "" End If Next Me.txtcedula.SetFocus

Universidad Autnoma de Quito

108

Programacin Visual Basic 6.0 Jess Cisneros Valle

Programamos el botn Limpiar, ponemos: Call Limpiar(Me) 'llamamos al procedimiento limpiar

Vamos a programar el botn Nuevo/Grabar, ponemos: rs.AddNew rs("cedula") = Me.txtcedula.Text rs("apellidos") = Me.txtapellidos.Text rs("nombres") = Me.txtnombres.Text rs("direccion") = Me.txtdireccion.Text rs("telefono") = Me.txttelefono.Text rs.Update Call Limpiar(Me) MsgBox ("Registro grabado...!"), vbInformation

Universidad Autnoma de Quito

109

Programacin Visual Basic 6.0 Jess Cisneros Valle

Programamos el botn Buscar: rs.Find "cedula='" & Me.txtcedula.Text & "'", , , 1 If rs.BOF = False And rs.EOF = False Then Me.txtapellidos.Text = rs.Fields("apellidos") Me.txtnombres.Text = rs.Fields("nombres") Me.txtdireccion.Text = rs.Fields("direccion") Me.txttelefono.Text = rs.Fields("telefono") Else Call Limpiar(Me) MsgBox ("Alumno no existe..!"), vbInformation End If

Programamos el botn Actualizar: rs.Update Array("cedula", "apellidos", "nombres", "direccion", "telefono"), _ Array(Trim(Me.txtcedula.Text), Trim(Me.txtapellidos.Text), Trim(Me.txtnombres.Text), Trim(Me.txtdireccion.Text), Trim(Me.txttelefono.Text)) rs.Update If rs.State = 1 Or rs.State = 0 Then MsgBox ("Registro actualizado..!"), vbInformation Call Limpiar(Me) End If

Universidad Autnoma de Quito

110

Programacin Visual Basic 6.0 Jess Cisneros Valle

Programando el boton Eliminar: If MsgBox("Esta seguro de eliminar..?", vbYesNo) = vbYes Then rs.Delete rs.MoveNext If rs.EOF Then rs.MoveLast MsgBox ("Registro Eliminado..!"), vbInformation Call Limpiar(Me) End If Else MsgBox ("Registro NO fue eliminado..!"), vbInformation Call Limpiar(Me) End If

El boton Salir: Unload Me

Universidad Autnoma de Quito

111

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora ingresaremos registros en la base de datos Unaq1. Usando las opciones de nuestro formulario:

El Programa completo de este formulario sera: Dim cn As New ADODB.Connection Dim rs As ADODB.Recordset Private Sub cmdactualizar_Click() rs.Update Array("cedula", "apellidos", "nombres", "direccion", "telefono"), _ Array(Trim(Me.txtcedula.Text), Trim(Me.txtapellidos.Text), Trim(Me.txtnombres.Text), Trim(Me.txtdireccion.Text), Trim(Me.txttelefono.Text)) rs.Update If rs.State = 1 Or rs.State = 0 Then MsgBox ("Registro actualizado..!"), vbInformation Call Limpiar(Me) End If End Sub Private Sub cmdbuscar_Click() rs.Find "cedula='" & Me.txtcedula.Text & "'", , , 1 If rs.BOF = False And rs.EOF = False Then Me.txtapellidos.Text = rs.Fields("apellidos") Me.txtnombres.Text = rs.Fields("nombres") Me.txtdireccion.Text = rs.Fields("direccion") Me.txttelefono.Text = rs.Fields("telefono") Else Call Limpiar(Me) MsgBox ("Alumno no existe..!"), vbInformation End If End Sub Universidad Autnoma de Quito

112

Programacin Visual Basic 6.0 Jess Cisneros Valle

Private Sub cmdeliminar_Click() If MsgBox("Esta seguro de eliminar..?", vbYesNo) = vbYes Then rs.Delete rs.MoveNext If rs.EOF Then rs.MoveLast MsgBox ("Registro Eliminado..!"), vbInformation Call Limpiar(Me) End If Else MsgBox ("Registro NO fue eliminado..!"), vbInformation Call Limpiar(Me) End If End Sub Private Sub cmdlimpiar_Click() Call Limpiar(Me) 'llamamos al procedimiento limpiar End Sub Public Sub Limpiar(frm As Form) For Each Control In frm.Controls If TypeOf Control Is TextBox Then Control.Text = "" End If Next Me.txtcedula.SetFocus End Sub Private Sub cmdnuevo_Click() rs.AddNew rs("cedula") = Me.txtcedula.Text rs("apellidos") = Me.txtapellidos.Text rs("nombres") = Me.txtnombres.Text rs("direccion") = Me.txtdireccion.Text rs("telefono") = Me.txttelefono.Text rs.Update Call Limpiar(Me) MsgBox ("Registro grabado...!"), vbInformation End Sub Private Sub cmdsalir_Click() Unload Me End Sub Private Sub Form_Load() cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=Unaq1;Data Source=USER-FB3BD5A8F6" Set rs = New ADODB.Recordset rs.Source = "Alumnos" rs.CursorType = adOpenKeyset rs.LockType = adLockOptimistic ' bloquea solo cuando esta usado rs.Open "select * from Alumnos", cn End Sub Private Sub Form_Unload(Cancel As Integer) cn.Close ' es necesario cerrar la conexin en cada formulario para evitar problemas con la base de datos End Sub

Universidad Autnoma de Quito

113

Programacin Visual Basic 6.0 Jess Cisneros Valle

MENUS
Para insertar un men damos clic derecho en Formulario, luego elegimos Agregar y despus Formulario MDI

Aparece la ventana Agregar formulario y damos clic en Abrir.

Universidad Autnoma de Quito

114

Programacin Visual Basic 6.0 Jess Cisneros Valle

Aparece el formulario del Menu.

Ponemos un nombre en el Caption ADMINISTRACION ACADEMICA, en (Nombre) ponemos Menu y en Windows State ponemos 2-Maximed

Universidad Autnoma de Quito

115

Programacin Visual Basic 6.0 Jess Cisneros Valle

Vamos ahora al EDITOR DE MENUS, damos clic en el formulario y se activa el edito de mens del men grafico de la parte superior. Damos clic en el Editor de mens.

Aparece el Editor de mens en donde ingresaremos datos en Caption y Name, tambin usaremos las fechas para especificar el nivel cada contenido del men, Cada que ingresemos algn componente del men debemos dar Siguiente. Daremos Aceptar al finalizar el men..

Universidad Autnoma de Quito

116

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ingresando Datos al Editor de mens.

Parmetros ser el men principal, este men tendr opciones, para ingresar el sub nivel de opciones damos clic en la flecha que indica a la derecha

Universidad Autnoma de Quito

117

Programacin Visual Basic 6.0 Jess Cisneros Valle

Una vez que ingresamos los datos en el Caption y en el Name, damos clic en Siguiente para ingresar otra opcin.

Al dar clic en siguiente el Editor de Menu baja a la siguiente lnea para ingresar la nueva opcin.

Universidad Autnoma de Quito

118

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ingresamos el Caption y el Name de la nueva opcin, una vez que lo hacemos damos clic en siguiente para otra opcin.

Una vez que ingresamos todas las posibles opciones, para crear una nueva opcin principal del men, luego de Siguiente damos clic en la fecha a la izquierda.

Universidad Autnoma de Quito

119

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ingresamos la opcin principal Procesos.

Una vez que hemos ingresado todas las opciones damos Aceptar.

Universidad Autnoma de Quito

120

Programacin Visual Basic 6.0 Jess Cisneros Valle

Aparece el men que hemos creado: Si damos clic en una de las opciones principales se desplegarn un sub men con sus opciones secundarias.

Podemos crear tambin teclas de acceso rpido a los sub men, esto lo hacemos en el Editor de mens, como ejemplo vemos el sub menu Alumnos. Que le asignamos las teclas rpidas Crtl+A.

Universidad Autnoma de Quito

121

Programacin Visual Basic 6.0 Jess Cisneros Valle

Una vez creadas todas las teclas (Cosa que no es una norma) nos queda el men algo parecido a la grfica: Damos Aceptar y listo el men.

Y en ejecucin nos queda:

Universidad Autnoma de Quito

122

Programacin Visual Basic 6.0 Jess Cisneros Valle

Es necesario que el MENU se ejecute primero en un proyecto, para esto vamos a Proyecto del men principal, elegimos Propiedades de Unaq1 y en objeto inicial elegimos Menu.

Guardamos el menu dentro de la carpeta APP.

Universidad Autnoma de Quito

123

Programacin Visual Basic 6.0 Jess Cisneros Valle

ENLAZANDO LOS SUB MENU CON SUS FORMULARIOS


Para enlazar un sub men con su formulario, en el respectivo sub menu, en este caso Alumnos Crtl+A, damos doble clic

Y en la pantalla de programacin del men escribimos: Load Mantenimiento

Universidad Autnoma de Quito

124

Programacin Visual Basic 6.0 Jess Cisneros Valle

ENLAZAR EL FORMULARIO CON EL MENU


Ahora para que el formulario se enlace con el Men, debemos marcar el formulario correspondiente, y elegimos la propiedad MDIChild y la ponemos en TRUE.

De esta manera al ser llamado por el Menu el formulario se activar y se ejecutar.

Universidad Autnoma de Quito

125

Programacin Visual Basic 6.0 Jess Cisneros Valle

Una vez hecho todos estos pasos el men se enlazar con el formulario y el resultado ser:

Tarea poner salir en el Men principal y programarlo, con Unload Me.

Universidad Autnoma de Quito

126

Programacin Visual Basic 6.0 Jess Cisneros Valle

PONIENDO UN GRID
Para poner un GRID en un formulario debemos activar en Componentes el objeto llamado GRID. Esto lo hacemos solo si el Microsoft DataGrid no est activado en el menu de Objetos.

Luego agregamos un nuevo formulario al proyecto.

Universidad Autnoma de Quito

127

Programacin Visual Basic 6.0 Jess Cisneros Valle

Tomamos el objeto GRID y lo poneos en el formulario

Ponemos un objeto ADODC1 para realizar la conexin del formulario y el GRID a la Base de Datos.

Universidad Autnoma de Quito

128

Programacin Visual Basic 6.0 Jess Cisneros Valle

Nos conectamos a la base siguiendo los pasos antes descritos.

Regresamos al ADOBC1 y elegimos en esta ocasin Origen de Registros y elegimos 2-adCmdTable.

Universidad Autnoma de Quito

129

Programacin Visual Basic 6.0 Jess Cisneros Valle

En Tabla o nombre de procedimiento almacenado elegimos la tabla y damos Aceptar.

Marcamos o damos clic en el GRID y en Propiedades y en DataSource elegimos la base en este caso es ADODC1 que est en el formulario.

Universidad Autnoma de Quito

130

Programacin Visual Basic 6.0 Jess Cisneros Valle

Para ver los campos en el GRID damos clic derecho sobre el GRID y elegimos Recuperar campos,

A la ventana que se abre inmediatamente despus le damos SI.

Universidad Autnoma de Quito

131

Programacin Visual Basic 6.0 Jess Cisneros Valle

Vemos en el GRID los campos recuperados. Son los campos de la Base de Datos Unaq1.

Ahora lo enlazamos el formulario con el Menu, elegimos la propiedad MDIChild y la ponemos en TRUE.

Universidad Autnoma de Quito

132

Programacin Visual Basic 6.0 Jess Cisneros Valle

Vamos ahora al men y lo enlazamos con el formulario del GRID. Cabe mencionar que para poder enlazar el men con el nuevo formulario este debe estar guardado con un nombre en el Proyecto. Bueno, enlazando vamos al men y en el sub men Alumnos damos doble clic.

En la pantalla de programacin ponemos: Load Consulta

Universidad Autnoma de Quito

133

Programacin Visual Basic 6.0 Jess Cisneros Valle

Vamos a ponerle un titulo al GRID para ellos en las propiedades del GRID (Clic derecho sobre el GRID) en Caption ponemos el titulo: NOMINA DE ALUMNOS y Aceptamos.

Aparece entonces el titulo:

Universidad Autnoma de Quito

134

Programacin Visual Basic 6.0 Jess Cisneros Valle

Para evitar que se pueda alterar la informacin cuando est desplegado el GRID desactivamos la casilla AllowUpdate de la ventana de la Pgina de Propiedades. Y damos Aceptar.

Podemos ahora ir al men y comprobar su funcionamiento.

Universidad Autnoma de Quito

135

Programacin Visual Basic 6.0 Jess Cisneros Valle

LIBRERIAS DINAMICAS (COM+)


Para utilizar las libreras Dinmicas primero vamos a hacer un formulario al cual iremos insertando las libreras segn las vamos creando. Hagamos un nuevo proyecto en Visual Basic. Lo llamaremos Ventas y un formulario al cual lo llamaremos MANVENT (Mantenimiento-Ventas). De antemano crearemos un carpeta en C:\> llamado Elid1 y dentro de ella tres carpetas APP, BDD y REGLAS es en esta ltima carpeta donde almacenaremos los archivos COM+.

En la carpeta APP ingresaremos los formularios de nuestro proyecto. El formulario nos queda como abajo:

Universidad Autnoma de Quito

136

Programacin Visual Basic 6.0 Jess Cisneros Valle

El formulario con sus Label, cajas de texto y botones nos queda:

No hay que olvidar poner las Referencias y el componente de ADO para conectarnos a la base de datos.

Universidad Autnoma de Quito

137

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora Crearemos una base de datos llamada Ventas1, con una tabla llamada Producto

Nos conectamos a la Base de datos Ventas1. Usando Adodc1.

Universidad Autnoma de Quito

138

Programacin Visual Basic 6.0 Jess Cisneros Valle

Abrimos nuevamente Visual Basic 6.0 para iniciar el proceso de creacin de libreras dinmicas. Para lo cual escogeremos de la ventana Nuevo proyecto el icono DLL ActiveX, Damos clic en Abrir.

Aparecer la ventana llamada proyecto1 Class (Cdigo)

Universidad Autnoma de Quito

139

Programacin Visual Basic 6.0 Jess Cisneros Valle

Le ponemos un nombre al Proyecto1, lo llamaremos Mantenimiento.

Damos clic derecho sobre Mantenimiento y elegimos Propiedades de Mantenimiento.

Universidad Autnoma de Quito

140

Programacin Visual Basic 6.0 Jess Cisneros Valle

En la ventana Mantenimiento-Propiedades del proyecto, elegimos Descripcin del Proyecto y aqu pondremos el nombre con que identificaremos a la librera COM+, en este caso la llamaremos _mant y damos Aceptar. En Tipo de Proyecto pondremos DLL ActiveX y en Objeto inicial: (Ninguno)

Luego vamos a Proyecto del men principal y elegimos Referencias.

Universidad Autnoma de Quito

141

Programacin Visual Basic 6.0 Jess Cisneros Valle

De la ventana Referencias elegimos Microsoft ActiveX Data Objects 2.0 y la seleccionamos damos luego Aceptar.

Ahora escribiremos un programa dentro de la ventana Mantenimiento, el programa nos permitir realizar la grabacin de un registro dentro de la base de datos Ventas1, tabla Productos que creamos al inicio.

Universidad Autnoma de Quito

142

Programacin Visual Basic 6.0 Jess Cisneros Valle

El cdigo que ingresamos en General (Inserta) Function inserta(cod_aux As Variant, des_aux As Variant, can_aux As Variant, pre_aux As Variant, mensaje As String) As Boolean On Error GoTo falla inserta = False Dim cone As ADODB.Connection Set cone = New ADODB.Connection cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=VENTAS1;Data Source=USER-FB3BD5A8F6" With cone 'abrir la conexion .CursorLocation = adUseClient .ConnectionString = cadena .Open End With 'cuando es numerico solo va entre comilla, cuando es string va tambien con apostrofe csql = "insert into producto values (" + cod_aux + ",'" + des_aux + "'," + can_aux + "," + pre_aux + ")" cone.Execute (csql) inserta = True Exit Function falla: mensaje = Err.Description End Function

Guardamos el programa dentro de la sub carpeta REGLAS de nuestra carpeta ELID1, de C:\>, con el nombre Manten. Para guardarlo damos Aceptar.

Universidad Autnoma de Quito

143

Programacin Visual Basic 6.0 Jess Cisneros Valle

En la siguiente ventana guardamos el Proyecto y damos Aceptar.

A la tercera ventana Control de Cdigo Fuente aceptamos en NO.

Universidad Autnoma de Quito

144

Programacin Visual Basic 6.0 Jess Cisneros Valle

Vamos ahora a Generar el proyecto llamado Mantenimiento.dll para lo cual vamos al men Principal, elegimos Archivo y luego Generar Mantenimiento.dll

Al dar clic en Generar Mantenimiento.dll aparece una nueva ventana llamada Generar Proyecto, dentro de la cual ya aparece Mantenimiento.dll. Damos Aceptar. Y se genera el proyecto.

Universidad Autnoma de Quito

145

Programacin Visual Basic 6.0 Jess Cisneros Valle

NOTA: Se utilizan la .dll para conectarse a base de datos cada .dll son clases que luego son llamadas en el proyecto.

RUTINA PARA CREAR UN DLL.


Ahora vamos a INICIO, Todos los programas y elegimos Ejecutar, donde escribiremos mmc, lo hacemos para ingresar a la Consola del Sistema.

Escribimos mmc en Ejecutar y damos Aceptar.

Universidad Autnoma de Quito

146

Programacin Visual Basic 6.0 Jess Cisneros Valle

En la Consola vamos a Archivo y elegimos Agregar o quitar complemento

Aparece la ventana Agregar o quitar complemento a la cual damos clic en Agregar.

Universidad Autnoma de Quito

147

Programacin Visual Basic 6.0 Jess Cisneros Valle

Aparece una nueva ventana llamada Agregar complemento independiente. De la cual elegimos Servicios de Componentes.

Damos Agregar y luego cerramos, no elegimos por ahora ningn componente ms.

Universidad Autnoma de Quito

148

Programacin Visual Basic 6.0 Jess Cisneros Valle

Al cerrar desaparece la ventana Agregar complemento independiente, y nos quedamos solo con la ventana Agregar o quitar complemento. Damos Aceptar.

En ciertos casos aparece la ventana de Alerta de seguridad d Windows, en la cual debemos poner Desbloquear.

Universidad Autnoma de Quito

149

Programacin Visual Basic 6.0 Jess Cisneros Valle

Luego aparece la ventana Raz de Consola donde ya est registrado el icono Servicios de componentes, de la raz de Consola (Consola que al inicio estaba vaca)

Damos clic en la Raz y lo seguimos haciendo pasando por: Servicios de componentes, Equipos, Mi PC, llegamos a Aplicaciones COM+,

Universidad Autnoma de Quito

150

Programacin Visual Basic 6.0 Jess Cisneros Valle

Donde damos clic derecho, elegimos Nuevo y luego Aplicacin.

Aparece el Asistente para instalacin de Aplicaciones COM+ damos Siguiente.

Universidad Autnoma de Quito

151

Programacin Visual Basic 6.0 Jess Cisneros Valle

En la siguiente ventana aceptamos o damos clic en Crear una aplicacin vaca.

Una vez de hecho clic en Crear una aplicacin vaca nos pide ingresar un nombre para la nueva aplicacin, en este caso le llamaremos: Ventas. Damos clic en Siguiente. OJO

Universidad Autnoma de Quito

152

Programacin Visual Basic 6.0 Jess Cisneros Valle

NOTA. Elegimos Venta y no Ventas, pues en clase ya creamos la .dll Ventas y al tratar de crearla nuevamente el sistema nos dice que no es posible hacerlo pues ya existe.

Ponemos el nombre Venta, elegimos Aplicacin de biblioteca y damos Siguiente.

Universidad Autnoma de Quito

153

Programacin Visual Basic 6.0 Jess Cisneros Valle

Aparece la ventan del Asistente indicndonos su finalizacin. Damos clic en Finalizar.

Ahora dentro de las Aplicaciones COM+ ya podemos ver a Venta y a Ventas (esta ultima la creamos en clase)

Universidad Autnoma de Quito

154

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora vamos a Venta damos clic y luego elegimos Componentes damos clic derecho escogemos Nuevo y por ltimo Componente.

Aparecer el asistente de instalacin de Componentes COM+ damos clic en siguiente.

Universidad Autnoma de Quito

155

Programacin Visual Basic 6.0 Jess Cisneros Valle

Aparecer una nueva ventana donde elegimos Instalar nuevos componentes.

En la siguiente ventana direccionamos donde va a estar nuestro archivo COM+ es decir dentro de nuestra sub carpeta REGLAS de la carpeta Elid1.

Universidad Autnoma de Quito

156

Programacin Visual Basic 6.0 Jess Cisneros Valle

Elegimos Mantenimiento.dll y Abrir

Luego de haber dado Abrir, aparece la venta del Asistente que nos muestra el direccionamiento que hemos efectuado elegiremos entonces Siguiente.

Universidad Autnoma de Quito

157

Programacin Visual Basic 6.0 Jess Cisneros Valle

Por ultimo finalizar.

En la ventana de abajo si damos clic de la siguiente manera: Ventas, Componentes, Mantenimiento.Class1, Interfaces, _Class1, Mtodos a final aparecer Inserta, que es el objeto o variable que ingresamos en nuestra codificacin de la pgina 143

Universidad Autnoma de Quito

158

Programacin Visual Basic 6.0 Jess Cisneros Valle

Guardamos la Consola y la direccionamos a la sub carpeta REGLAS. Damos Guardar.

REGRESAMOS A VISUAL BASIC. Damos doble clic en el comando Grabar

Universidad Autnoma de Quito

159

Programacin Visual Basic 6.0 Jess Cisneros Valle

Para verificar si nuestra clase o COM+ ya est en Referencias de nuestro proyecto VENTAS, vamos al Menu Principal, escogemos Proyecto y luego Referencias. Y buscamos _Mant como vemos ya est registrado en Referencias.

Elegimos _Mant y damos Aceptar para incluir a _Mant en nuestro Proyecto VENTAS.

Universidad Autnoma de Quito

160

Programacin Visual Basic 6.0 Jess Cisneros Valle

Dentro de COMMAD2, escribimos: Private Sub Command2_Click() Dim mensaje As String Dim k As Mantenimiento.Class1 Set k = New Mantenimiento.Class1 If k.inserta(Me.Text1.Text, Me.Text2.Text, Me.Text3.Text, Me.Text4.Text, mensaje) Then MsgBox ("Registro agregado...!") Call limpiar Else MsgBox (mensaje) Call limpiar End If End Sub Para el Botn LIMPIAR hacemos un procedimiento:

Dentro del Procedimiento limpiar ponemos: Public Sub limpiar() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text1.SetFocus End Sub Universidad Autnoma de Quito

161

Programacin Visual Basic 6.0 Jess Cisneros Valle

Para probar si funciona ejecutamos el formulario MANVENT de visual basic y vemos como trabaja.

NUEVO PROYECTO CON .DLL


Primero crearemos en C:\> la carpeta Jess_elid y las sub carpetas PROG, BDD Y REGLAS.

Crearemos una base de datos llamada UNAQ y dentro de ella una tabla llamada alumnos

Universidad Autnoma de Quito

162

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora en Visual Basic, creamos un nuevo proyecto llamado Procesos y un formulario que contenga objetos como los de la figura de abajo:

Vamos a Proyecto del men principal y escogemos Referencias y activamos Microsoft ActiveX Data Objects 2.0 Library

Universidad Autnoma de Quito

163

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora insertamos el objeto DODB, damos doble clic en el men de Objetos de lado izquierdo y escogemos Componentes

De la ventana Componentes escogemos Microsoft ADO Data Control 6.0 (OLEDB)

Universidad Autnoma de Quito

164

Programacin Visual Basic 6.0 Jess Cisneros Valle

Insertamos el Objeto ADODB en el formulario y generamos el enlace con la base de datos UNAQ

DLL ACTIVEX (LIBRERA DINAMICA DLL)


Hasta aqu lo que tiene que ver con el formulario por lo pronto. Ahora crearemos un nuevo proyecto pero con ACTIVEX DLL. Abrimos nuevamente Visual Basic 6.0

Universidad Autnoma de Quito

165

Programacin Visual Basic 6.0 Jess Cisneros Valle

Una vez abierto le ponemos un nombre al proyecto ActiveX DLL en este caso Procesamiento.

Ahora vamos a propiedades de Procesamiento, para lo cual damos clic derecho sobre Procesamiento

Universidad Autnoma de Quito

166

Programacin Visual Basic 6.0 Jess Cisneros Valle

En la ventana Procesamiento Propiedades del proyecto, en la opcin Descripcin del Proyecto ponemos un nombre que lo describa en Referencias. (Men Principal Proyecto Referencias), en este caso se llamara _Procesar y damos Aceptar.

Ahora activamos las referencias del proyecto Procesamiento, elegimos del Men Principal, Proyecto luego Referencias y activamos Microsoft ActiveX Data Objects 2.0 Library luego ponemos Aceptar.

Universidad Autnoma de Quito

167

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora programaremos en el proyecto Procesamiento de ACTIVEX DLL. Function consultar(aux_cedula As Variant, aux_apellidos As Variant, aux_nombres As Variant, aux_nota1 As Variant, aux_nota2 As Variant, aux_nota3 As Variant, mensaje As String) As Boolean consultar = False Dim cone As ADODB.Connection Set cone = New ADODB.Connection Set regi = New ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=UNAQ;Data Source=USER-FB3BD5A8F6" With cone .CursorLocation = adUseClient .ConnectionString = cadena .Open End With csql2 = "select * from alumnos where cedula ='" + aux_cedula + "'" Set regi = cone.Execute(csql2) aux_apellidos = regi!apellidos aux_nombres = regi!nombres aux_nota1 = regi!nota1 aux_nota2 = regi!nota2 aux_nota3 = regi!nota3 consultar = True End Function Function insertar(aux_cedula As Variant, aux_apellidos As Variant, aux_nombres As Variant, aux_nota1 As Variant, aux_nota2 As Variant, aux_nota3 As Variant, mensaje As String) As Boolean On Error GoTo falla insertar = False Dim cone As ADODB.Connection Dim regi As ADODB.Recordset Set cone = New ADODB.Connection cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=UNAQ;Data Source=USER-FB3BD5A8F6" With cone .CursorLocation = adUseClient .ConnectionString = cadena .Close End With If regi.RecordCount <> 0 Then csql = "insert into alumnos values('" + aux_cedula + "', '" + aux_apellidos + "', '" + aux_nombres + "' , " + aux_nota1 + ", " + aux_nota2 + ", " + aux_nota3 + ")" cone.Execute (csql) insertar = True Exit Function End If falla: mensaje = Err.Description End Function

Universidad Autnoma de Quito

168

Programacin Visual Basic 6.0 Jess Cisneros Valle

Function actualizar(aux_cedula As Variant, aux_apellidos As Variant, aux_nombres As Variant, aux_nota1 As Variant, aux_nota2 As Variant, aux_nota3 As Variant, mensaje As String) As Boolean actualizar = False Dim cone As ADODB.Connection Dim regi As ADODB.Recordset Set cone = New ADODB.Connection Set regi = New ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=UNAQ;Data Source=USER-FB3BD5A8F6" With cone .CursorLocation = adUseClient .ConnectionString = cadena .Open End With csql2 = "update alumnos set cedula = '" + aux_cedula + "', apellidos = '" + aux_apellidos + "', nombres = '" + aux_nombres + "' , nota1 = " + aux_nota1 + ", nota2 = " + aux_nota2 + ", nota3 = " + aux_nota3 + "" Set regi = cone.Execute(csql2) actualizar = True mensaje = "Registro Actualizado" End Function Function eliminar(aux_cedula As Variant, mensaje As String) As Boolean eliminar = False Dim cone As ADODB.Connection Dim regi As ADODB.Recordset Set cone = New ADODB.Connection Set regi = New ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=UNAQ;Data Source=USER-FB3BD5A8F6" With cone .CursorLocation = adUseClient .ConnectionString = cadena .Open End With csql2 = "delete from alumnos where cedula = '" + aux_cedula + "'" Set regi = cone.Execute(csql2) eliminar = True mensaje = "registro eliminado" End Function

GENERAMOS EL PROYECTO DLL


Vamos Ahora a Generar el Proyecto Procesamiento, para eso vamos al men principal y en Archivo seleccionamos Generar Procesamiento.dll

Universidad Autnoma de Quito

169

Programacin Visual Basic 6.0 Jess Cisneros Valle

Al dar clic en Generar Proyecto nos pregunta donde guardamos lo que generamos, lo pondremos en la carpeta REGLAS, que creamos al inicio. Y damos Aceptar. De esta manera hemos generado la LIBRERA dinmica Procesamiento.dll.

RUTINAS PARA LA CREACION DE UN DLL


Vamos ahora al INICIO y en Ejecutar. Esto dentro del proyecto Procesamiento.

Universidad Autnoma de Quito

170

Programacin Visual Basic 6.0 Jess Cisneros Valle

Escribimos en Ejecutar mmc.

Aparece entonces la ventana de la Consola1

Universidad Autnoma de Quito

171

Programacin Visual Basic 6.0 Jess Cisneros Valle

En la ventana Consola1, vamos al men Principal y elegimos Nuevo, all aceptamos en Agregar o quitar complemento

Aparece la ventana Agregar o quitar Complemento damos clic en Agregar.

Universidad Autnoma de Quito

172

Programacin Visual Basic 6.0 Jess Cisneros Valle

Se despliega una nueva ventana llamada Agregar un complemento independiente, de la cual aceptamos en el icono Servicio de Componentes. Y hacemos clic en Agregar

Al hacer clic en Agregar, automticamente Servicios de Componentes se traslada a la ventana Agregar o quitar Componentes. Cerramos la ventana Agregar un componente independiente, cerrada la ventana Agregar un componente independiente. Damos Aceptar en Agregar o quitar un componente.

Universidad Autnoma de Quito

173

Programacin Visual Basic 6.0 Jess Cisneros Valle

En Consola1, abrimos con el ratn en Raz de consola, Servicio de componentes, Equipos, Mi PC y en Aplicaciones COM+ damos clic derecho, seleccionamos entonces Nuevo y Aplicacin.

Al ejecutar Aplicacin, aparece la ventana ASISTENTE PARA LA INSTALACION DE APLICACIONES COM+ en el cual damos Siguiente.

Universidad Autnoma de Quito

174

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos clic en Crear una Aplicacin vaca.

En la ventana que aparece nos pedir en nombre de la nueva aplicacin, pondremos un nombre que identifique a la aplicacin, en este caso notas1 y adems activaremos Aplicacin de biblioteca. Luego damos clic en Siguiente >

Universidad Autnoma de Quito

175

Programacin Visual Basic 6.0 Jess Cisneros Valle

Aparece la ventana del Asistente, donde damos clic en Finalizar

Al dar clic en Aplicaciones COM+ aparece ya notas1

Universidad Autnoma de Quito

176

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos clic en notas1 y elegimos Nuevo y luego Componentes

Aparecer nuevamente la ventana ASISTENTE PARA LA INSTALACION DE APLICACIONES COM+ y daremos siguiente.

Universidad Autnoma de Quito

177

Programacin Visual Basic 6.0 Jess Cisneros Valle

En la ventana siguiente escogemos Instalar nuevos componentes.

En la ventana que se activa. Seleccionar archivos que se van a instalar direccionamos a donde esta nuestro archivo dll en este caso en REGLAS de la carpeta Jess_elid con el nombre Procesamiento.dll, damos clic en Abrir.

Universidad Autnoma de Quito

178

Programacin Visual Basic 6.0 Jess Cisneros Valle

En la nueva ventana aparece el archivo Procesamiento.dll ya direccionado. Y elegimos Siguiente.

En la ltima ventana aceptamos en Finalizar.

Universidad Autnoma de Quito

179

Programacin Visual Basic 6.0 Jess Cisneros Valle

Si damos clic en notas1, luego en Componentes, Procesamiento/Class1, luego en Interfaces, _Clase1 y luego en mtodos al final aparecen: actualizar, consultar, eliminar, insertar. Que son los programas que escribimos en nuestro proyecto Procesamiento.dll de las pginas 168 y 169.

Guardamos la Consola y la guardamos en nuestra sub carpeta REGLAS, damos Guardar.

Universidad Autnoma de Quito

180

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora vamos a VISUAL BASIC, regresamos al formulario que creamos al inicio Form1.

PERO, Antes de escribir el programa, debemos ir al menu principal y elegimos Proyecto, luego Referencias y aceptamos en _Procesar, hacemos esto para que se pueda acceder a la librera dinmica procesamiento.dll damos Aceptar

Universidad Autnoma de Quito

181

Programacin Visual Basic 6.0 Jess Cisneros Valle

Damos doble clic en el botn Consultar, para crear un programa que enlace la dll y nuestro formulario con el botn correspondiente. El programa seria: Private Sub Command1_Click() Dim mensaje As String Dim k As Procesamiento.Class1 Dim aux_cedula As Variant Dim aux_apellidos As Variant Dim aux_nombres As Variant Dim aux_nota1 As Variant Dim aux_nota2 As Variant Dim aux_nota3 As Variant Set k = New Procesamiento.Class1 aux_cedula = Me.Text1.Text If k.consultar(aux_cedula, aux_apellidos, aux_nombres, aux_nota1, aux_nota2, aux_nota3, mensaje) Then Me.Text2.Text = aux_apellidos Me.Text3.Text = aux_nombres Me.Text4.Text = aux_nota1 Me.Text5.Text = aux_nota2 Me.Text6.Text = aux_nota3 Else MsgBox ("Registro no existe") End If End Sub Ejecutando el programa aparecer el resultado de la bsqueda.

Universidad Autnoma de Quito

182

Programacin Visual Basic 6.0 Jess Cisneros Valle

El Programa completo quedara: En los programas de la DLL. Function consultar(cedula_aux As Variant, aux_apellidos As Variant, aux_nombres As Variant, aux_nota1 As Variant, aux_nota2 As Variant, aux_nota3 As Variant, mensaje As String) As Boolean consultar = False Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=UNAQ;Data Source=VISIONFUTURO" With cn cn.CursorLocation = adUseClient cn.ConnectionString = cadena cn.Open End With csql2 = "select * from alumnos where cedula='" + cedula_aux + "'" Set rs = cn.Execute(csql2) If rs.RecordCount <> 0 Then aux_apellidos = rs!apellidos aux_nombres = rs!nombres aux_nota1 = rs!nota1 aux_nota2 = rs!nota2 aux_nota3 = rs!nota3 consultar = True End If End Function Function insertar(cedula_aux As Variant, aux_apellidos As Variant, aux_nombres As Variant, aux_nota1 As Variant, aux_nota2 As Variant, aux_nota3 As Variant, mensaje1 As String) As Boolean On Error GoTo falla insertar = False Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=UNAQ;Data Source=VISIONFUTURO" With cn cn.CursorLocation = adUseClient cn.ConnectionString = cadena cn.Open End With csql = "insert into alumnos values('" + cedula_aux + "','" + aux_apellidos + "', '" + aux_nombres + "'," + aux_nota1 + "," + aux_nota2 + "," + aux_nota3 + ")" cn.Execute (csql) Universidad Autnoma de Quito

183

Programacin Visual Basic 6.0 Jess Cisneros Valle

insertar = True Exit Function falla: mensaje1 = Err.Description End Function Function actualizar(cedula_aux As Variant, aux_apellidos As Variant, aux_nombres As Variant, aux_nota1 As Variant, aux_nota2 As Variant, aux_nota3 As Variant, mensaje2 As String) As Boolean actualizar = False Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=UNAQ;Data Source=VISIONFUTURO" With cn cn.CursorLocation = adUseClient cn.ConnectionString = cadena cn.Open End With csql2 = "update alumnos set cedula='" + cedula_aux + "', apellidos='" + aux_apellidos + "', nombres='" + aux_nombres + "', nota1=" + aux_nota1 + ", nota2=" + aux_nota2 + ", nota3=" + aux_nota3 + " where cedula ='" + cedula_aux + "'" Set rs = cn.Execute(csql2) actualizar = True mensaje2 = "REGISTRO FUE MODIFICADO..!" End Function Function eliminar(cedula_aux As Variant, mensaje3 As String) As Boolean eliminar = False Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=UNAQ;Data Source=VISIONFUTURO" With cn cn.CursorLocation = adUseClient cn.ConnectionString = cadena cn.Open End With csql3 = "delete from alumnos where cedula='" + cedula_aux + "'" Set rs = cn.Execute(csql3) eliminar = True mensaje3 = "registro eliminado" End Function

Universidad Autnoma de Quito

184

Programacin Visual Basic 6.0 Jess Cisneros Valle

En la programacin del formulario: Private Sub Command1_Click() 'BOTON CONSULTAR Dim errores As Variant On Error GoTo errores Dim cedula_aux As Variant Dim aux_apellidos As Variant Dim aux_nombres As Variant Dim aux_nota1 As Variant Dim aux_nota2 As Variant Dim aux_nota3 As Variant Dim mensaje As String Dim c As Procesamiento.Class1 Set c = New Procesamiento.Class1 cedula_aux = Me.Text1.Text If c.consultar(cedula_aux, aux_apellidos, aux_nombres, aux_nota1, aux_nota2, aux_nota3, mensaje) Then Me.Text2.Text = aux_apellidos Me.Text3.Text = aux_nombres Me.Text4.Text = aux_nota1 Me.Text5.Text = aux_nota2 Me.Text6.Text = aux_nota3 Else MsgBox ("REGISTRO NO EXISTE") End If Exit Sub errores: Select Case Err Case "3021" MsgBox Err.Description End Select End Sub Public Sub limpia() Me.Text1.Text = "" Me.Text2.Text = "" Me.Text3.Text = "" Me.Text4.Text = "" Me.Text5.Text = "" Me.Text6.Text = "" Me.Text1.SetFocus End Sub Private Sub Command2_Click() 'BOTON INSERTAR/GRABAR/ALTAS Dim mensaje1 As String Dim ins As Procesamiento.Class1 Universidad Autnoma de Quito

185

Programacin Visual Basic 6.0 Jess Cisneros Valle

Set ins = New Procesamiento.Class1 If ins.insertar(Me.Text1.Text, Me.Text2.Text, Me.Text3.Text, Me.Text4.Text, Me.Text5.Text, Me.Text6.Text, mensaje1) Then MsgBox ("REGISTRO AGREGADO") Call limpia Else MsgBox (mensaje1) Call limpia End If End Sub Private Sub Command3_Click() 'BOTON ACTUALIZAR/MODIFICAR Dim mensaje2 As String Dim cedula_aux As Variant Dim aux_apellidos As Variant Dim aux_nombres As Variant Dim aux_nota1 As Variant Dim aux_nota2 As Variant Dim aux_nota3 As Variant Dim actu As Procesamiento.Class1 Set actu = New Procesamiento.Class1 If actu.actualizar(Me.Text1.Text, Me.Text2.Text, Me.Text3.Text, Me.Text4.Text, Me.Text5.Text, Me.Text6.Text, mensaje2) Then MsgBox ("DATOS ACTUALIZADOS") Call limpia Me.Text1.SetFocus Else Me.Text1.SetFocus End If End Sub Private Sub Command4_Click() 'BOTON ELIMINAR Dim mensaje3 As String Dim cedula_aux As Variant Dim eli As Procesamiento.Class1 Set eli = New Procesamiento.Class1 If eli.eliminar(Me.Text1.Text, mensaje3) Then MsgBox (mensaje3) Call limpia Me.Text1.SetFocus Else MsgBox ("DATO NO SE ELIMINO") Call limpia Me.Text1.SetFocus End If End Sub Private Sub Command6_Click() Unload Me End Sub Private Sub limpiar_Click() Call limpia End Sub Universidad Autnoma de Quito

186

Programacin Visual Basic 6.0 Jess Cisneros Valle

Un nuevo proyecto con DLL:


Debemos hacer las carpetas en C:>\ APP, REGLAS, BDD.

La base de datos en SQL Server:

Universidad Autnoma de Quito

187

Programacin Visual Basic 6.0 Jess Cisneros Valle

Los programas en DLL. Function consultar(codlibro_aux As Variant, aux_nomlibro As Variant, aux_precio As Variant, aux_cantidad As Variant, mensaje As String) As Boolean consultar = False Dim cone As ADODB.Connection Set cone = New ADODB.Connection Set regi = New ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=LIBRERIA;Data Source=VISIONFUTURO" With cone .CursorLocation = adUseClient .ConnectionString = cadena .Open End With csql2 = "select * from libro where codlibro='" + codlibro_aux + "'" Set regi = cone.Execute(csql2) If regi.RecordCount <> 0 Then aux_nomlibro = regi!nomlibro aux_precio = regi!precio aux_cantidad = regi!cantidad consultar = True End If End Function

Function eliminar(codlibro_aux As Variant, mensaje3 As String) As Boolean eliminar = False Dim regi As ADODB.Recordset Dim cone As ADODB.Connection Set cone = New ADODB.Connection Set regi = New ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=LIBRERIA;Data Source=VISIONFUTURO" With cone .CursorLocation = adUseClient .ConnectionString = cadena .Open End With csql2 = "delete from libro where codlibro='" + codlibro_aux + "'" Set regi = cone.Execute(csql2) eliminar = True mensaje3 = "REGISTRO ELIMINADO" End Function Universidad Autnoma de Quito

188

Programacin Visual Basic 6.0 Jess Cisneros Valle

Function insertar(codlibro_aux As Variant, aux_nomlibro As Variant, aux_precio As Variant, aux_cantidad As Variant, mensaje1 As String) As Boolean On Error GoTo falla insertar = False Dim cone As ADODB.Connection Set cone = New ADODB.Connection 'Set regi = New ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=LIBRERIA;Data Source=VISIONFUTURO" With cone .CursorLocation = adUseClient .ConnectionString = cadena .Open End With csql = "insert into libro values('" + codlibro_aux + "', '" + aux_nomlibro + "', " + aux_precio + ", " + aux_cantidad + ")" cone.Execute (csql) insertar = True Exit Function falla: mensaje1 = Err.Description End Function Function actualizar(codlibro_aux As Variant, aux_nomlibro As Variant, aux_precio As Variant, aux_cantidad As Variant, mensaje2 As String) As Boolean actualizar = False Dim regi As ADODB.Recordset Dim cone As ADODB.Connection Set cone = New ADODB.Connection Set regi = New ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=LIBRERIA;Data Source=VISIONFUTURO" With cone .CursorLocation = adUseClient .ConnectionString = cadena .Open End With csql2 = "update libro set codlibro='" + codlibro_aux + "', nomlibro='" + aux_nomlibro + "', precio=" + aux_precio + ",cantidad= " + aux_cantidad + " where codlibro ='" + codlibro_aux + "'" Set regi = cone.Execute(csql2) actualizar = True mensaje2 = "REGISTRO ACTUALIZADO" End Function

Universidad Autnoma de Quito

189

Programacin Visual Basic 6.0 Jess Cisneros Valle

Los programas del formulario: Private Sub Command1_Click() Dim mensaje As String Dim codlibro_aux, aux_nomlibro, aux_precio, aux_cantidad As Variant Dim k As Manten1.Class1 Set k = New Manten1.Class1 codlibro_aux = Me.Text1.Text If k.consultar(codlibro_aux, aux_nomlibro, aux_precio, aux_cantidad, mensaje) Then Me.Text2.Text = aux_nomlibro Me.Text3.Text = aux_precio Me.Text4.Text = aux_cantidad Else MsgBox ("Registro no existe") Me.Text1.SetFocus End If End Sub Private Sub Command2_Click() Dim mensaje1 As String Dim k As Manten1.Class1 Set k = New Manten1.Class1 If k.insertar(Me.Text1.Text, Me.Text2.Text, Me.Text3.Text, Me.Text4.Text, mensaje1) Then MsgBox ("Registro Agredado") Call LIMPIAR Else MsgBox (mensaje1) Call LIMPIAR End If End Sub Private Sub Command3_Click() Dim mensaje2 As String Dim codlibro_aux As Variant Dim aux_nomlibro As Variant Dim aux_precio As Variant Dim aux_cantidad As Variant Dim actu As Manten1.Class1 Set actu = New Manten1.Class1 If actu.actualizar(Me.Text1.Text, Me.Text2.Text, Me.Text3.Text, Me.Text4.Text, mensaje2) Then MsgBox ("Datos actualizados") Call LIMPIAR Me.Text1.SetFocus Else Me.Text1.SetFocus End If End Sub Private Sub Command4_Click() Dim mensaje3 As String Dim codlibro As Variant Universidad Autnoma de Quito

190

Programacin Visual Basic 6.0 Jess Cisneros Valle

Dim eli As Manten1.Class1 Set eli = New Manten1.Class1 If eli.eliminar(Me.Text1.Text, mensaje3) Then MsgBox (mensaje3) Call LIMPIAR Me.Text1.SetFocus Else MsgBox ("Datos no fueron eliminados") Call LIMPIAR Me.Text1.SetFocus End If End Sub Public Sub LIMPIAR() Me.Text1.Text = "" Me.Text2.Text = "" Me.Text3.Text = "" Me.Text4.Text = "" Me.Text1.SetFocus End Sub Private Sub Command5_Click() Call LIMPIAR End Sub Private Sub Command6_Click() Unload Me End Sub

Universidad Autnoma de Quito

191

Programacin Visual Basic 6.0 Jess Cisneros Valle

NUEVO PROYECTO Crearemos una base de datos llamada ALUMNOSUNAQ Tabla ALUMNOS:

Tabla MATERIA:

Universidad Autnoma de Quito

192

Programacin Visual Basic 6.0 Jess Cisneros Valle

Tabla MATRICULA

Tabla NOTA:

Universidad Autnoma de Quito

193

Programacin Visual Basic 6.0 Jess Cisneros Valle

NOTA: Para poder colocar mas de una clave principal, se debe marcar la columna del registro y manteniendo aplastado el SHIFT iremos marcado una a una las claves con la llavecita que designa una clave.

BASE DE DATOS: ALUMNOSUNAQ TABLA ALUMNOS: CLAVE NOMBRE CAMPO CODALU NOMALU CEDALU CODFAC TABLA MATERIA: CLAVE NOMBRE CAMPO CODMAT DESMAT CODFAC CREMAT TABLA MATRICULA: CLAVE NOMBRE CAMPO NUMMAT CEDALU CODFAC ANIO SEMESTRE CODMAT TABLA NOTA: CLAVE NOMBRE CAMPO CODALU CODMAT Universidad Autnoma de Quito TIPO CHAR CHAR CHAR CHAR TIPO CHAR CHAR CHAR NUMERIC TIPO NUMERIC CHAR CHAR CHAR CHAR CHAR TIPO CHAR CHAR TAMAO 4 30 10 4 TAMAO 3 25 4 9 (18,0) TAMAO 9 (18,0) 10 4 10 10 3 TAMAO 4 3

194

Programacin Visual Basic 6.0 Jess Cisneros Valle

NOTA01 NOTA02 NOTA03 NOTSUP TABLA FACULTAD: CLAVE NOMBRE CAMPO CODFAC DESFAC

NUMERIC NUMERIC NUMERIC NUMERIC TIPO CHAR CHAR

9 (18,0) 9 (18,0) 9 (18,0) 9 (18,0) TAMAO 4 25

Una ves que hemos creado la base de datos sea en SQL Server 2000 o 2005, ahora vamos a Visual Basic a crear el formulario.

Vamos al men principal y en Proyecto, elegimos Componentes y de all seleccionamos Microsoft Masked Edit Control 6.0, damos Aplicar y Aceptar.

Universidad Autnoma de Quito

195

Programacin Visual Basic 6.0 Jess Cisneros Valle

Usando Microsoft Masked Edit Control 6.0, ponemos una caja de texto que nos servir para ingresar la clave principal y le ponemos un nombre en la caja de propiedades. En este caso le llamaremos Txtcodalu

Ponemos el resto de cajas de texto y a cada una de ellas les ponemos un nombre TxtApelnom, Txtnummat, Txtaniolec, Txtsemestre

Universidad Autnoma de Quito

196

Programacin Visual Basic 6.0 Jess Cisneros Valle

Activamos en Componentes : Microsoft Data Grid Control 6.0 (OLEDB) y Microsoft Data List Control 6.0 (OLEDB).

Activamos tambien de Componentes: Microsoft ADO Data Control 6.0 (OLEDB)

Universidad Autnoma de Quito

197

Programacin Visual Basic 6.0 Jess Cisneros Valle

Activamos en referencias: Microsoft Active Data Objects 2.6

Ponemos un Data Combo para facultades y otro Data Combo para Materias.

Universidad Autnoma de Quito

198

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ponemos un Data Gris, un botn de comando que se llame Agregar Materias.

Ponemos un ADODC1 lo llamaremos Facultades y lo conectamos con la base de datos

Universidad Autnoma de Quito

199

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora al ADODC1 que hemos llamado facultades debemos configurarlo para que trabaje con la tabla Facultad de la base de datos, para eso vamos a Propiedades de ADODC, luego elegimos la lengeta Origen de registros y all escogemos Tipo de comando y lo ponemos en 2 adCDMTable en el combo Tabla o nombre de procedimiento almacenado escogemos la tabla a la que hacemos referencia en ADODC1 que es Facultad. Damos Aceptar.

Procedimos de igual manera con los ADODC2 (Materia), No olvidemos que previamente debemos haber conectado el ADODC2 a la base de datos.

Universidad Autnoma de Quito

200

Programacin Visual Basic 6.0 Jess Cisneros Valle

Procedimos de igual manera con los ADODC3 (Matriculas), No olvidemos que previamente debemos haber conectado el ADODC3 a la base de datos.

Adems a cada ADODC le ponemos un nombre de acuerdo a la tabla con que trabajar: AdoFacultad, AdoMaterias, AdoMatriculas.

Universidad Autnoma de Quito

201

Programacin Visual Basic 6.0 Jess Cisneros Valle

Proseguimos y marcamos DataCombo destinado a las Facultades y elegimos de la caja de Propiedades la propiedad Rowsource En donde elegiremos el ADODC con que trabajar en este caso AdoFacultad.

Seguimos en el DataCombo destinado a las Facultades, y de propiedades elegimos BoundColum y elegimos uno de los campos de la tabla Facultad, en este caso CODFAC

Universidad Autnoma de Quito

202

Programacin Visual Basic 6.0 Jess Cisneros Valle

Acto seguido dentro del mismo DataCombo Facultad elegimos ListField y escogemos de los campos de la tabla Facultad, el campo DESFAC.

Hacemos lo mismo con el ADODC2 (Materia) de la caja de Propiedades escogemos: Rowsource

Universidad Autnoma de Quito

203

Programacin Visual Basic 6.0 Jess Cisneros Valle

BoundColumn

ListField

Universidad Autnoma de Quito

204

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ahora configuramos el DataGrid para conectarlo a la base por medio del ADODC3 (Matricula). Entonces vamos al DataSource de la caja de Propiedades y escogemos AdoMatricula

Damos clic derecho sobre el DataGrid y recuperamos los campos de la tabla Matricula.

Universidad Autnoma de Quito

205

Programacin Visual Basic 6.0 Jess Cisneros Valle

Al dar Aceptar aparecen los campos de la tabla Matricula.

A fin de que NO puedan modificar el DataCombo, marcamos el DataCombo y en la caja de propiedades elegimos Style y de all la opcin 2 dbcDropdowmList lo hacemos con los dos DataCombo.

Universidad Autnoma de Quito

206

Programacin Visual Basic 6.0 Jess Cisneros Valle

ACTIVEX DLL Ahora vamos a crear las libreras ActiveX DLL

Ponemos Nombre al proyecto en esta caso ProyMatriculas

Universidad Autnoma de Quito

207

Programacin Visual Basic 6.0 Jess Cisneros Valle

En propiedades de ProyMatriculas escribimos en Descripcin del Proyecto _ProMatricula, damos Aceptar

En referencias activamos Microsoft ActiveX Data Objects 2.6 Library

Universidad Autnoma de Quito

208

Programacin Visual Basic 6.0 Jess Cisneros Valle

Regresamos al Formulario y en Txtcodalu, lo activamos y en la caja de propiedades elegimos Mask, que es la mascara de entrada de los cdigos y ponemos 9999, es decir solo entraran 4 nmeros. En MaxLength ponemos en numero 4.

Vamos a Personalizando del mismo Txtcodalu y activamos AutoTab

Universidad Autnoma de Quito

209

Programacin Visual Basic 6.0 Jess Cisneros Valle

Regresamos a la DLL y generamos el proyecto ProyMatriculas

En el formulario de Visual Basic, activamos la Referencias del Proyecto y activamos _ Prematricula y damos Aceptar.

Universidad Autnoma de Quito

210

Programacin Visual Basic 6.0 Jess Cisneros Valle

OJO podemos cambiar el nombre de la class del proyecto en este caso se llamar ClasMat

Programos el Txtcodalu, como lostfocus

Universidad Autnoma de Quito

211

Programacin Visual Basic 6.0 Jess Cisneros Valle

La programacin inicia:

PERO: Primero programanos la CLASE: Generamos la consulta de la clase ConsAlum:

Universidad Autnoma de Quito

212

Programacin Visual Basic 6.0 Jess Cisneros Valle

La programacin de la clase ConsAlum: Function ConsAlum(AuxCed, AuxNom As Variant, mensaje As String) As Boolean ConsAlum = False Dim cone As ADODB.Connection Dim regi As ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=base1;Data Source=C1L2M01" Set cone = New ADODB.Connection Set regi = New ADODB.Recordset With cone .CursorLocation = adUseClient .ConnectionString = cadena .Open End With csql2 = "select * from alumno where codalu='" & AuxCed & "'" Set regi = cone.Execute(csql2) If regi.RecordCount <> 0 Then AuxNom = regi!nomalu ConsAlum = True Else mensaje = "Alumno no existe" End If End Function Una vez programada la Clase ConsAlum, abajo vemos la programacin del Txtodalum, en el formulario

Universidad Autnoma de Quito

213

Programacin Visual Basic 6.0 Jess Cisneros Valle

Programando Txtcodalu Dim auxced, auxapelnom As Variant Dim mensaje As String Private Sub Txtcodalu_LostFocus() Dim c As ProyMatricula.ClasMat Set c = New ProyMatricula.ClasMat auxced = Me.Txtcodalu.Text If c.ConsAlum(auxced, auxapelnom, mensaje) Then Me.TxtApelNom.Text = auxapelnom Else MsgBox (mensaje) End If End Sub Ahora crearemos una nueva tabla llamada PARAMETROS:

Universidad Autnoma de Quito

214

Programacin Visual Basic 6.0 Jess Cisneros Valle

Guardamos y abajo vemos los campos que le ingresamos a la tabla PARAMETROS: Los campos son: PNUMAT numeric (4) PANIOLEC char(10) PSEMESTRE nchar(10)

Guardamos la tabla como PARAMETRO

Universidad Autnoma de Quito

215

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ingresamos datos a la tabla PARAMETRO

Luego en el formulario agregamos un procedimiento llamado Cargar Datos

Universidad Autnoma de Quito

216

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ac vemos la programacin que hasta ahora hemos hecho en el formulario: Dim auxced, auxapelnom As Variant Dim mensaje As String Dim CN As New ADODB.Connection Dim RS As New ADODB.Recordset Private Sub Form_Load() Set RS = New ADODB.Recordset CN.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=base1;Data Source=C1L2M01" RS.Source = "parametro" RS.CursorType = adOpenKeyset RS.LockType = adLockOptimistic RS.Open "select * from parametro", CN End Sub Private Sub Txtcodalu_LostFocus() Dim c As ProyMatricula.ClasMat Set c = New ProyMatricula.ClasMat Universidad Autnoma de Quito

217

Programacin Visual Basic 6.0 Jess Cisneros Valle

auxced = Me.Txtcodalu.Text If c.ConsAlum(auxced, auxapelnom, mensaje) Then Me.TxtApelNom.Text = auxapelnom Call CargarDatos Else MsgBox (mensaje) End If End Sub Public Sub CargarDatos() Me.Txtmatricula.Text = RS.Fields("pnummat") Me.Txtanio.Text = RS.Fields("paniolec") Me.txtsemestre.Text = RS.Fields("psemestre") End Sub Corremos el programa y nos dar un resultado parecido a la vista de abajo

Para el GRID hacemos un nuevo procedimiento que esta vez se llamar Cargar Gric

Universidad Autnoma de Quito

218

Programacin Visual Basic 6.0 Jess Cisneros Valle

Luego vamos al ADODCMatriculas a propiedades:

Y en la lengeta origen del registro, seleccionamos la tabla y el texto de comando SQL, en este caso la tabla es MATRICULA y el texto es: select * form matriculas

Universidad Autnoma de Quito

219

Programacin Visual Basic 6.0 Jess Cisneros Valle

Programacin de las clases ConsAlum e Inserta

Function ConsAlum(AuxCed, AuxNom As Variant, mensaje As String) As Boolean ConsAlum = False Dim cone As ADODB.Connection Dim regi As ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=base1;Data Source=C1L2M01" Set cone = New ADODB.Connection Set regi = New ADODB.Recordset With cone .CursorLocation = adUseClient .ConnectionString = cadena .Open End With csql2 = "select * from alumno where codalu='" & AuxCed & "'" Set regi = cone.Execute(csql2) If regi.RecordCount <> 0 Then AuxNom = regi!nomalu ConsAlum = True Else mensaje = "Alumno no existe" End If End Function

Function insertaAlu(nummat, cedalu, CODFAC, anio, semestre, codmat As Variant, mensaje As String) As Boolean insertaAlu = False Dim cone As ADODB.Connection Dim regi As ADODB.Recordset Set cone = New ADODB.Connection Set regi = New ADODB.Recordset cadena = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=base1;Data Source=C1L2M01"

Universidad Autnoma de Quito

220

Programacin Visual Basic 6.0 Jess Cisneros Valle

With cone .CursorLocation = adUseClient .ConnectionString = cadena .Open End With csql3 = "insert into matricula values(" + nummat + ", '" + cedalu + "', '" + CODFAC + "','" + anio + "', '" + semestre + "','" + codmat + "')" Set regi = cone.Execute(csql3) insertaAlu = True mensaje = "Registro Grabado" End Function
El formulario nos va quedando:

La clase programada se vera:

Universidad Autnoma de Quito

221

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ingresamos datos a la tabla ALUMNO

Universidad Autnoma de Quito

222

Programacin Visual Basic 6.0 Jess Cisneros Valle

Ingresando datos a la tabla FACULTAD

Ingresando datos a la tabla MATERIA

Universidad Autnoma de Quito

223

Programacin Visual Basic 6.0 Jess Cisneros Valle

Creando La tabla notas:

Parmetros de la tabla NOTAS

Universidad Autnoma de Quito

224

Programacin Visual Basic 6.0 Jess Cisneros Valle

Form Dim auxced, auxapelnom As Variant Dim mensaje As String Dim CN As New ADODB.Connection Dim RS As New ADODB.Recordset Private Sub CmdAgregar_Click() Dim g As ProyMatricula.ClasMat Set g = New ProyMatricula.ClasMat Dim nummat, cedalu, CODFAC, anio, semestre, codmat As Variant 'dim mensaje as String nummat = Me.Txtmatricula.Text cedalu = Me.Txtcodalu.Text anio = Me.Txtanio.Text semestre = Me.txtsemestre.Text CODFAC = Me.DCfacultad.BoundColumn codmat = Me.DCMaterias.BoundColumn If g.insertaAlu(nummat, cedalu, CODFAC, anio, semestre, codmat, mensaje) Then MsgBox (mensaje) Call CargarGrid Else MsgBox ("No grabado") End If End Sub Private Sub Form_Load() Set RS = New ADODB.Recordset CN.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=base1;Data Source=C1L2M01" RS.Source = "parametro" RS.CursorType = adOpenKeyset RS.LockType = adLockOptimistic RS.Open "select * from parametro", CN End Sub Private Sub Txtcodalu_LostFocus() Dim c As ProyMatricula.ClasMat Set c = New ProyMatricula.ClasMat
Universidad Autnoma de Quito

225

Programacin Visual Basic 6.0 Jess Cisneros Valle

auxced = Me.Txtcodalu.Text If c.ConsAlum(auxced, auxapelnom, mensaje) Then Me.TxtApelNom.Text = auxapelnom Call CargarDatos Else MsgBox (mensaje) End If End Sub Public Sub CargarDatos() Me.Txtmatricula.Text = RS.Fields("pnummat") Me.Txtanio.Text = RS.Fields("paniolec") Me.txtsemestre.Text = RS.Fields("psemestre") End Sub

Public Sub CargarGrid() Me.AdoMatricula.RecordSource = "select * from matricula where codalu='" & Me.Txtcodalu.Text & "'" Me.AdoMatricula.Refresh End Sub

Universidad Autnoma de Quito

226

Programacin Visual Basic 6.0 Jess Cisneros Valle

Universidad Autnoma de Quito

227

Programacin Visual Basic 6.0 Jess Cisneros Valle