Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Una vez que damos clic en Microsoft Visual Basic 6.0 ingresamos al entorno de Visual Basic 6.0
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.
Para cambiar el nombre del Formulario (Form1), marcamos el formulario y en la ventana de propiedades en CAPTION cambiamos el nombre del formulario.
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.
En esta ventana nos trasladamos hasta la raz C:\> y creamos una carpeta. Con un nombre especfico para dentro de ella guardar nuestro proyecto.
Por esta ocasin la carpeta llevar nuestro nombre, la abriremos y dentro de ella guardaremos nuestro proyecto y formulario.
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.
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:
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:
10
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,
11
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.
12
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.
13
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
14
Antes de empezar a programar los botones de comando ponemos un botn de comando ms. El Botn Limpiar.
15
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
16
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.
17
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
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.
19
20
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
21
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
22
23
Ponemos los label y ponemos las caractersticas de cada uno: Cdula, nombre, direccin y telfono:
24
Insertamos los botones de comando y les ponemos los nombres que deseamos a cada uno de ellos: Grabar, consultar, eliminar, actualizar, limpiar y salir.
25
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:
26
Vamos ahora a abrir Access de Microsoft, para crear nuestra base de datos.
27
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:
28
Grabamos para guardar y nos pide el nombre de la tabla le pondremos en este caso el nombre clientes.
29
Nos pedir definir una clave principal o primaria, cedula ser nuestra clave principal.
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.
30
Ingresamos datos y los grabamos: Una vez hecho todo esto salimos de Access.
31
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.
32
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
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.
34
Damos un nuevo nombre (en este caso UNAQ) a la base y luego guardar: En la misma carpeta que hemos venido trabajando.
35
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.
36
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.
37
38
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:
39
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
40
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
41
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
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.
43
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.
44
Luego nos pide demos el nombre a la base, se llamar Unaq. Ponemos el nombre y damos aceptar en Crear.
Aparecen entonces los campos de una tabla (tabla1) en la cual detallaremos todos los campos que necesitemos.
45
Grabamos la tabla y le ponemos un nombre, se llamar clientes. Damos Aceptar para grabar.
46
Cerramos la tabla y aparece la ventana Unaq Base de datos, en esta ventana escogemos nuestra tabla: clientes e ingresamos algunos datos:
47
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.
48
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
49
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)
50
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
51
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.
52
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.
53
Ahora vemos que la ruta ha sido aceptada y ya est registrada en la seccin Ubicacin:
54
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:
55
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.
56
Al hacer esto nos aparece el entorno Tabla nueva en Unaq, en (local) donde ya podemos ingresar datos a nuestra tabla.
57
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.
58
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
59
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.
60
La tabla con los datos nos quedar: Para cerrar la tabla clientes damos clic en la X.
61
62
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.
63
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.
64
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.
65
En la ventana Propiedades de la Base de Datos, ponemos un nombre a la Base de Datos. Se llamar UNAQ2009
66
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:\>
67
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.
68
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.
69
Damos clic en el botn Dispositivos.. y se abre una nueva ventana llamada Elegir dispositivos para restaurar. De la cual elegimos el botn Agregar
70
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.
71
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..
72
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.
73
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.
74
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.
75
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.
76
Luego vamos al men principal, y elegimos Proyecto y elegimos del men que se despliega Referencias. Y damos clic en Referencias:
77
Dentro de la ventana de Referencias, buscamos y activamos la referencia Microsoft ActiveX Data Objects 2.0 Library. Damos Aceptar.
78
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
79
80
Damos clic en ADODC, que es el icono que recin instalamos, lo elegimos para colocarlos en nuestro formulario
81
82
De esa ventana escogemos Microsoft OLE DB Provider for SQL Server y damos Siguiente.
83
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.
84
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.
85
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.
86
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.
87
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.
88
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:
89
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
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
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:
92
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).
93
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.
94
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.
95
Una vez completado el proceso de direccionamiento en la ventana Propiedades de la base de datos: UNaq1, damos ACEPTAR.
96
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.
97
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.
98
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.
99
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.
100
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:\>
101
102
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.
103
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
104
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
105
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.
106
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
107
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
108
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
109
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
110
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
111
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
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
113
MENUS
Para insertar un men damos clic derecho en Formulario, luego elegimos Agregar y despus Formulario MDI
114
Ponemos un nombre en el Caption ADMINISTRACION ACADEMICA, en (Nombre) ponemos Menu y en Windows State ponemos 2-Maximed
115
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..
116
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
117
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.
118
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.
119
Una vez que hemos ingresado todas las opciones damos Aceptar.
120
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.
121
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.
122
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.
123
124
125
Una vez hecho todos estos pasos el men se enlazar con el formulario y el resultado ser:
126
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.
127
Ponemos un objeto ADODC1 para realizar la conexin del formulario y el GRID a la Base de Datos.
128
129
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.
130
Para ver los campos en el GRID damos clic derecho sobre el GRID y elegimos Recuperar campos,
131
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.
132
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.
133
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.
134
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.
135
En la carpeta APP ingresaremos los formularios de nuestro proyecto. El formulario nos queda como abajo:
136
No hay que olvidar poner las Referencias y el componente de ADO para conectarnos a la base de datos.
137
Ahora Crearemos una base de datos llamada Ventas1, con una tabla llamada Producto
138
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.
139
140
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)
141
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.
142
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.
143
144
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.
145
NOTA: Se utilizan la .dll para conectarse a base de datos cada .dll son clases que luego son llamadas en el proyecto.
146
147
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.
148
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.
149
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+,
150
151
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
152
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.
153
Ahora dentro de las Aplicaciones COM+ ya podemos ver a Venta y a Ventas (esta ultima la creamos en clase)
154
Ahora vamos a Venta damos clic y luego elegimos Componentes damos clic derecho escogemos Nuevo y por ltimo Componente.
155
En la siguiente ventana direccionamos donde va a estar nuestro archivo COM+ es decir dentro de nuestra sub carpeta REGLAS de la carpeta Elid1.
156
Luego de haber dado Abrir, aparece la venta del Asistente que nos muestra el direccionamiento que hemos efectuado elegiremos entonces Siguiente.
157
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
158
159
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.
160
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
Para probar si funciona ejecutamos el formulario MANVENT de visual basic y vemos como trabaja.
Crearemos una base de datos llamada UNAQ y dentro de ella una tabla llamada alumnos
162
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
163
Ahora insertamos el objeto DODB, damos doble clic en el men de Objetos de lado izquierdo y escogemos Componentes
164
Insertamos el Objeto ADODB en el formulario y generamos el enlace con la base de datos UNAQ
165
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
166
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.
167
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
168
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
169
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.
170
171
En la ventana Consola1, vamos al men Principal y elegimos Nuevo, all aceptamos en Agregar o quitar complemento
172
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.
173
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.
174
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 >
175
176
Aparecer nuevamente la ventana ASISTENTE PARA LA INSTALACION DE APLICACIONES COM+ y daremos siguiente.
177
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.
178
179
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.
180
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
181
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.
182
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
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
184
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
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
187
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
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
189
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
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
191
NUEVO PROYECTO Crearemos una base de datos llamada ALUMNOSUNAQ Tabla ALUMNOS:
Tabla MATERIA:
192
Tabla MATRICULA
Tabla NOTA:
193
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
NOTA01 NOTA02 NOTA03 NOTSUP TABLA FACULTAD: CLAVE NOMBRE CAMPO CODFAC DESFAC
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.
195
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
196
Activamos en Componentes : Microsoft Data Grid Control 6.0 (OLEDB) y Microsoft Data List Control 6.0 (OLEDB).
197
Ponemos un Data Combo para facultades y otro Data Combo para Materias.
198
199
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.
200
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.
201
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
202
Acto seguido dentro del mismo DataCombo Facultad elegimos ListField y escogemos de los campos de la tabla Facultad, el campo DESFAC.
203
BoundColumn
ListField
204
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.
205
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.
206
207
208
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.
209
En el formulario de Visual Basic, activamos la Referencias del Proyecto y activamos _ Prematricula y damos Aceptar.
210
OJO podemos cambiar el nombre de la class del proyecto en este caso se llamar ClasMat
211
La programacin inicia:
212
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
213
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:
214
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)
215
216
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
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
218
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
219
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"
220
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:
221
222
223
224
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
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
226
227