Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guia VBN2
Guia VBN2
ELABORADO POR
cc_peralta@hotmail.com
INTRODUCCIN
La presente Gua de Laboratorio de Microsoft Visual Basic, se elabor con la finalidad de complementar la parte terica con la parte prctica del curso. Los problemas presentan un grado de dificultad gradual, es decir, en cada prctica primero se comienzan con problemas muy sencillos con la finalidad de que el estudiante esclarezca dudas y quede claro en los
conceptos asimilados en la teora, y luego en los problemas posteriores se va incrementando el nivel de dificultad. Esta gua explora una gran variedad de materias y contiene muchos problemas recopilados que a lo largo las de varios aos de de los
experiencia.
Espero
satisfaga
necesidades
estudiantes y colegas, ya que ha sido elaborada teniendo en cuenta los objetivos de aprendizaje del curso. Si desean compartirla con otros colegas, me agradara
mucho que lo hicieran, con la nica condicin de que siempre se respete el derecho del autor. Desde ya les deseo la mejor de las suertes en el
Microsoft
GUA DE LABORATORIO N 6 Objetivos
Visual Basic
Luego de completar este laboratorio, el estudiante ser capaz de: Crear y manipular bases de datos utilizando Microsoft Access. Adicionar un entorno de datos a un proyecto. Conectar un origen de datos a un objeto Connection. Utilizar un objeto Command para recuperar registros de un origen de datos. Crear formularios con datos enlazados. Realizar consultas utilizando sentencias SQL. Consideraciones Para el desarrollo del presente laboratorio Ud. deber crear una carpeta C:\FundVB\Lab6, para guardar sus trabajos correspondientes a este laboratorio. Creacin de la base de datos con Microsoft Access 2000 Para desarrollar nuestras prcticas de laboratorio debemos crear una base de datos cuyo nombre es CursosLibres.MDB, la cual contendr las tablas Curso y Laboratorio. La tarea de crear una base de datos con Microsoft Access 2000 es muy sencilla. Para tal fin debe realizar lo siguiente: Arrancar Microsoft Access 2000. Seleccionar la orden Nueva. . . del Men Archivo. Dentro del cuadro de dilogo Nueva, en la ficha General, seleccionar Base de datos y hacer click en el botn Aceptar. Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 3
Ingresar un nombre para la base de datos, para nuestro caso ingrese CursosLibres. En seguida se mostrar una ventana similar a la siguiente:
Proceda a crear una nueva tabla. Para ello seleccionar la opcin Tablas y haga doble click en Crear una tabla en vista Diseo. Introducir el nombre, el tipo y las propiedades para cada uno de los campos. Para nuestro caso ingrese lo siguiente: Tabla Curso Nombre del Campo CurCodigo CurNombre CurVacantes CurProfe CurSilabo T T N T M 03 30 03 50 50
Cdigo del curso Nombre del curso Nmero de vacantes disponibles Nombre del profesor de teora Slabo de cada curso
Tipo
Ancho
Descripcin
cc_peralta@hotmail.com
Luego,
debe
asignar
un
nombre
la
tabla
al
momento
de
cerrarla. Para nuestro caso asgnele el nombre de Curso. Por ltimo, proceda a abrir la tabla e introducir datos. Para nuestro caso, ingrese la siguiente informacin: CurCodigo BC1 BC2 BC3 VB1 VB2 VB3 VC1 VC2 VJ1 VJ2 VF1 VF2 VF3 PB1 PB2 SQ1 SQ2 WIN CurNombre Borland C++ Nivel I Borland C++ Nivel II Borland C++ Nivel III MS Visual Basic Nivel I MS Visual Basic Nivel II MS Visual Basic Nivel III MS Visual C++ Nivel I MS Visual C++ Nivel II MS Visual J++ Nivel I MS Visual J++ Nivel II MS Visual FoxPro Nivel I MS Visual FoxPro Nivel II MS Visual FoxPro Nivel III Power Builder Nivel I Power Builder Nivel II MS SQL Server Nivel I MS SQL Server Nivel II MS Windows 98 CurProfe Linares Alarcon, Adams Crdoba Saavedra, Javier Castillo Peralta, Carlos Linares Alarcon, Adams Linares Alarcon, Adams Castillo Peralta, Carlos Crdoba Saavedra, Javier Castillo Peralta, Carlos Castillo Peralta, Carlos Castillo Peralta, Carlos Linares Alarcon, Adams Castillo Peralta, Carlos Castillo Peralta, Carlos Crdoba Saavedra, Javier Crdoba Saavedra, Javier Crdoba Saavedra, Javier Crdoba Saavedra, Javier Montes Tejada, Estela
A menudo, el proceso de diseo de la base de datos es bastante complejo. Para nosotros ha sido fcil, pues se nos brinda la estructura de las tablas. De manera anloga, proceda a crear la siguiente tabla
Tipo
Ancho
Descripcin
Al momento de cerrar la tabla que acaba de crear, asgnele el nombre de Laboratorio. Luego, proceda a ingresar la siguiente informacin: LabCodigo BC1 BC2 BC3 VB1 VB2 VB3 VC1 VC2 VJ1 VJ2 VF1 VF2 VF3 PB1 PB2 SQ1 SQ2 WIN LabHora SA 08-10 SA 10-12 DO 10-12 SA 08-10 DO 10-12 DO 08-10 DO 08-10 DO 10-12 SA 16-18 SA 18-20 SA 08-10 DO 08-10 DO 14-16 VI 16-18 VI 14-16 SA 16-18 SA 18-20 SA 10-12 LabProfe Castillo Peralta, Carlos Linares Alarcon, Adams Castillo Peralta, Carlos Montes Tejada, Estela Linares Alarcon, Adams Castillo Peralta, Carlos Linares Alarcon, Adams Crdoba Saavedra, Javier Castillo Peralta, Carlos Castillo Peralta, Carlos Linares Alarcon, Adams Crdoba Saavedra, Javier Linares Alarcon, Adams Crdoba Saavedra, Javier Crdoba Saavedra, Javier Crdoba Saavedra, Javier Crdoba Saavedra, Javier Montes Tejada, Estela
cc_peralta@hotmail.com
Aplicacin N 1 Elaborar una aplicacin que permita realizar el mantenimiento de la informacin almacenada en la tabla Curso de la base de datos CursosLibres.MDB. El diseo de la interfaz debe ser similar a la figura mostrada:
Los
botones
ubicados
en
el
marco
Navegador
(Primero,
Anterior, Siguiente y Ultimo, de izquierda a derecha) permiten desplazarse a travs de la tabla. Los botones ubicados en el marco Mantenimiento (Nuevo, Editar, Guardar y Eliminar, de izquierda a derecha) permiten realizar las operaciones bsicas de mantenimiento de la tabla. Para debemos habitual, desarrollar hacer a es nuestra aplicacin, a la lo base primero de que datos la
conectarnos en el
CursosLibres.MDB. Para ello ingrese a Visual Basic de manera continuacin men Proyecto seleccione opcin Agregar Data Environment y se crear una nueva conexin para la que debe establecer propiedades de vnculo de datos. En la ventana Data Environment cambie el nombre del objeto 7
cc_peralta@hotmail.com
DataEnvironment CnCursosLibres.
por El
DeCursosLibres aspecto de la
Luego
haga y
click
con
el la
botn
derecho
del
ratn
en
CnCursosLibres
seleccione
opcin
Propiedades.
Deber
cc_peralta@hotmail.com
En botn
la
ficha
Proveedor En
del
cuadro
de
dilogo
anterior,
seleccione Microsoft Jet 4.0 OLE DB Provider y haga click en el Siguiente. seguida aparecer un cuadro de dilogo similar al mostrado:
cc_peralta@hotmail.com
En la ficha Conexin del cuadro de dilogo Propiedades de Data Link escriba y el nombre de la base de datos CursosLibres.MDB Aceptar. En seguida en la barra de herramientas de la ventana Data Environment haga click en el botn Agregar Comando y denomine al comando CmCurso. Luego haga click derecho sobre el comando y seleccione Propiedades: haga click en el botn Probar conexin.
cc_peralta@hotmail.com
10
Compruebe CnCursosLibres,
que luego
este
comando el
utiliza nombre de
la la
conexin tabla a
establezca
utilizar, en este caso Curso y haga click en el botn Aceptar. A continuacin seleccione el comando CmCurso y arrstrelo hacia el formulario. Finalmente agregue los siguientes controles al formulario: 3 marcos 9 botones de comandos En seguida proceda a establecer las propiedades
requeridas: Form1 Nombre Caption BorderStyle Frame1 Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 11 FrmMantenCurso Mantenimiento de cursos 3-Fixed Dialog
Nombre Caption Frame2 Nombre Caption Frame3 Nombre Caption LblFieldLabel(0) Nombre Caption LblFieldLabel(1) Nombre Caption LblFieldLabel(2) Nombre Caption LblFieldLabel(3) Nombre Caption TxtCurCodigo Nombre Locked Text
FraIngreso
FraNavegador Navegador
FraMantenimiento Mantenimiento
LblFieldLabel Cdigo:
LblFieldLabel Nombre:
LblFieldLabel Vacantes:
LblFieldLabel Profesor:
TxtCurCodigo True
Nombre Locked Text TxtCurVacantes Nombre Locked Text TxtCurProfe Nombre Locked Text Command1 Nombre Caption Picture Style Command2 Nombre Caption Picture Style Command3 Nombre Caption Picture Style
TxtCurNombre True
TxtCurVacantes True
TxtCurProfe True
cc_peralta@hotmail.com
13
Command4 Nombre Caption Picture Style Command5 Nombre Caption Picture Style Command6 Nombre Caption Picture Style Command7 Nombre Caption Picture Style Command8 Nombre Caption Picture Style C:\FundVB\Bitmaps\Delete.bmp 1-Graphical CmdEliminar C:\FundVB\Bitmaps\Save.bmp 1-Graphical CmdGuardar C:\FundVB\Bitmaps\Edit.bmp 1-Graphical CmdEditar C:\FundVB\Bitmaps\New.bmp 1-Graphical CmdNuevo C:\FundVB\Bitmaps\Last.bmp 1-Graphical CmdUltimo
cdigo
continuacin: Private Sub CmdPrimero_Click() DeCursosLibres.rsCmCurso.MoveFirst End Sub Private Sub CmdUltimo_Click() DeCursosLibres.rsCmCurso.MoveLast End Sub Private Sub CmdAnterior_Click() DeCursosLibres.rsCmCurso.MovePrevious If DeCursosLibres.rsCmCurso.BOF Then DeCursosLibres.rsCmCurso.MoveFirst MsgBox Estamos en el primer registro End If End Sub Private Sub CmdSiguiente_Click() DeCursosLibres.rsCmCurso.MoveNext If DeCursosLibres.rsCmCurso.EOF Then DeCursosLibres.rsCmCurso.MoveLast MsgBox Estamos en el ltimo registro End If End Sub
DeCursosLibres.rsCmCurso.AddNew ModoEditar True End Sub Private Sub CmdEditar_Click() ModoEditar True End Sub Private Sub CmdGuardar_Click() DeCursosLibres.rsCmCurso.Update ModoEditar False End Sub Private Sub CmdEliminar_Click() DeCursosLibres.rsCmCurso.Delete DeCursosLibres.rsCmCurso.MoveNext If DeCursosLibres.rsCmCurso.EOF Then DeCursosLibres.rsCmCurso.MoveLast End If End Sub Private Sub CmdSalir_Click() Unload Me End Private Sub Form_Unload(Cancel As Integer) If MsgBox(Desea terminar la aplicacin?, _ vbQuestion + vbYesNo, Pregunta) = vbYes Then End Else Cancel = True End If End Sub Private Sub Form_Activate() Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 16
ModoEditar False End Sub Private Sub ModoEditar(ByVal Ok As Boolean) TxtCurCodigo.Locked = Not Ok: TxtCurNombre.Locked = Not Ok TxtCurVacantes.Locked = Not Ok: TxtCurProfe.Locked = Not Ok CmdNuevo.Enabled = Not Ok: CmdEditar.Enabled = Not Ok CmdGuardar.Enabled = Ok: CmdEliminar.Enabled = Not Ok CmdPrimero.SetFocus: If Ok Then TxtCurCodigo.SetFocus End Sub Finalmente antes de ejecutar la aplicacin debemos
asegurarnos de elegir el tipo de bloqueo adecuado. Para ello haga click derecho sobre el comando CmCurso y elija la opcin Propiedades y en la ficha Avanzadas selecciones el tipo de bloqueo 3-Optimistic, tal como se muestra en la figura siguiente:
Desarrollar
una
aplicacin
que
permita
mostrar
en
una
Para desarrollar la aplicacin, lo primero que debemos hacer Luego, es conectarnos un a la y base de datos CursosLibres.MDB. Haga aada Comando denomnelo CmConsultaCurso.
cc_peralta@hotmail.com
18
que Luego
este Language,
comando la
utiliza opcin de
la
conexin SQL de
seleccione
Instruccin Estructuras
Query
Lenguaje
Consultas) e ingrese el siguiente cdigo: Select CurCodigo As Cdigo, CurNombre As Nombre, CurVacantes As Vacantes, CurProfe As Profesor From Curso Luego, haga click en el botn Aceptar. La ventana
A Del
continuacin desplegable
seleccione que se
el
comando
CmConsultaCurso
arrstrelo con el botn derecho del ratn hacia el formulario. men presenta, seleccione la opcin Cuadrcula de datos.
Luego, cambie las dimensiones de la grilla de tal forma que ocupe la totalidad del formulario. Finalmente guarde y pruebe su aplicacin. Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 19
Aplicacin N 3 Desarrollar una aplicacin que permita seleccionar de un control DataCombo el nombre de un profesor y visualizar los cursos que dicta dicho profesor.
Lo primero que debe hacer es conectarse a la base de datos CursosLibres.MDB. En seguida aada un comando y denomnelo CmConsultaProfe. Luego haga click derecho sobre el comando y seleccione Propiedades. Compruebe que este comando utiliza la conexin CnCursosLibres. Luego seleccione la opcin Instruccin SQL e ingrese el siguiente cdigo: Select CurCodigo As Cdigo, CurNombre As Nombre,
CurProfe As Profesor From Curso Where (CurProfe = ?) A continuacin proceda a aadir otro comando y denomnelo CmProfe. Compruebe que este comando utiliza la conexin CnCursosLibres. Seleccione la opcin Instruccin SQL e ingrese el siguiente cdigo: Select Distinct CurProfe From Curso Luego proceda ha ubicar los siguientes controles en el formulario: Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 20
1 control DataCombo 1 control DataGrid 1 botn de comandos En seguida proceda a establecer las propiedades segn se indica: Form1 Nombre Caption BorderStyle DataCombo1 Nombre ListField RowMember RowSource DataGrid1 Nombre Font HeadFont Command1 Nombre Caption CmdBuscar &Buscar DbgrdCursos Arial (Negrita 10) Arial (Negrita 10) DbcProfe CurProfe CmProfe DeCursosLibres FrmConsultaProfe Consulta de profesores 3-Fixed Dialog
A continuacin ingrese el siguiente cdigo: Private Sub CmdBuscar_Click() If DeCursosLibres.rsCmConsultaProfe.State = adStateOpen Then DeCursosLibres.rsCmConsultaProfe.Close End If Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 21
DeCursosLibres.CmConsultaProfe (DbcProfe.Text) Set DbgrdCursos.DataSource = DeCursosLibres.rsCmConsultaProfe End Sub Aplicacin N 4 Desarrollar una aplicacin que permita mostrar el contenido de la tabla Laboratorio, relacionada con la tabla Curso, tal como se muestra a continuacin:
Observar que la tabla Laboratorio slo cuenta con tres campos. El campo que contiene el nombre del curso pertenece a la tabla Curso. La sentencia SQL que permite obtener consultas a partir de mltiples tablas (para nuestro caso Curso y Laboratorio), se indica a continuacin: Select Laboratorio.LabCodigo As Cdigo, Curso.CurNombre As Nombre, Laboratorio.LabHora As Horario, Laboratorio.LabProfe As [Jefe de prctica] From Laboratorio, Curso Where Laboratorio.LabCodigo = Curso.CurCodigo
cc_peralta@hotmail.com
22
Microsoft
GUA DE LABORATORIO N 7 Objetivos
Visual Basic
Luego de completar este laboratorio, el estudiante ser capaz de: Utilizar el objeto ADO Connection para crear una conexin a una base de datos. Crear un objeto ADO Recordset para recuperar informacin de una base de datos. Utilizar el mtodo Execute de una conexin para actualizar la informacin de una base de datos. Consideraciones Para el desarrollo del presente laboratorio Ud. deber crear una carpeta C:\FundVB\Lab7, para guardar sus trabajos correspondientes a este laboratorio. Aplicacin N 1 Elaborar una aplicacin que permita realizar el mantenimiento de la informacin contenida en la tabla Curso.
cc_peralta@hotmail.com
23
En esta aplicacin Ud. debe disear la interfaz y luego escribir cdigo para conectarse y recuperar informacin de la base de datos. Para el diseo de la interfaz, proceda a ubicar los
siguientes controles en el formulario: 3 marcos 4 etiquetas 4 cajas de texto 8 botones de comando En seguida proceda a establecer las propiedades segn se indica: Form1 Nombre Caption BorderStyle Moveable StartUpPosition Frame1 Nombre Caption Frame2 Nombre Caption Frame3 Nombre Caption FraMantenimiento Mantenimiento 24 FraNavegador Navegador FraIngreso FrmMantenCursos Mantenimiento de cursos 3-Fixed Dialog False 2-CenterScreen
cc_peralta@hotmail.com
Label1 Nombre Caption Label2 Nombre Caption Label3 Nombre Caption Label4 Nombre Caption Text1 Nombre Locked Text Text2 Nombre Locked Text Text3 Nombre Locked Text Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 25 TxtCurVacantes True TxtCurNombre True TxtCurCodigo True LblProfesor Profesor: LblVacantes Vacantes: LblNombre Nombre: LblCodigo Cdigo:
Text4 Nombre Locked Text Para establecer las propiedades de los botones de comando Command1, Command2, . . ., Command8, copiar los pasos de la pg. 87 a la pg. 88 de la Gua de Laboratorio N 6 (Aplicacin N 1). Antes de ingresar cdigo a la aplicacin, debemos tener en cuenta que para Visual poder Basic utilizar es los objetos cargar ADO la es una aplicacin la opcin necesario librera TxtCurProfe True
correspondiente. Para ello selecciones el men Proyecto y elija Referencias. la opcin En el cuadro de dilogo Referencias Microsoft ActiveX Data Objects 2.1 seleccione
cc_peralta@hotmail.com
26
Luego
de
hacer
click
en
el
botn
Aceptar
estar
en
condiciones de utilizar los objetos ADO en su aplicacin. El cdigo necesario para realizar la conexin y efectuar el mantenimiento de la tabla se muestra a continuacin. Observar la analoga cuando se utiliza Data Environment. Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Private Sub ModoEditar(ByVal Ok As Boolean) TxtCurCodigo.Locked = Not Ok TxtCurNombre.Locked = Not Ok TxtCurVacantes.Locked = Not Ok TxtCurProfe.Locked = Not Ok CmdNuevo.Enabled = Not Ok CmdEditar.Enabled = Not Ok CmdGuardar.Enabled = Ok Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 27
CmdEliminar.Enabled = Not Ok If Ok Then TxtCurCodigo.SetFocus End Sub Private Sub Form_Load() ModoEditar False Set Cn = New ADODB.Connection Set Rs = New ADODB.Recordset Cn.Open Provider=Microsoft.Jet.OLEDB.4.0; & _ Data Source=C:\FundVB\Data\CursosLibres.MDB; & _ Persist Security Info=False Rs.ActiveConnection = Cn Rs.CursorType = adOpenKeyset Rs.LockType = adLockOptimistic Rs.Open Select * From Curso Set TxtCurCodigo.DataSource = Rs TxtCurCodigo.DataField = CurCodigo Set TxtCurNombre.DataSource = Rs TxtCurNombre.DataField = CurNombre Set TxtCurVacantes.DataSource = Rs TxtCurVacantes.DataField = CurVacantes Set TxtCurProfe.DataSource = Rs TxtCurProfe.DataField = CurProfe End Sub Private Sub CmdPrimero_Click() Rs.MoveFirst End Sub Private Sub CmdAnterior_Click() Rs.MovePrevious If Rs.BOF Then Rs.MoveFirst Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 28
MsgBox Estamos en el primer registro End If End Sub Private Sub CmdSiguiente_Click() Rs.MoveNext If Rs.EOF Then Rs.MoveLast MsgBox Estamos en el ltimo registro End If End Sub Private Sub CmdUltimo_Click() Rs.MoveLast End Sub Private Sub CmdNuevo_Click() Rs.AddNew ModoEditar True End Sub Private Sub CmdEditar_Click() ModoEditar True End Sub Private Sub CmdGuardar_Click() Rs.Update ModoEditar False End Sub Private Sub CmdEliminar_Click() Rs.Delete Rs.MoveNext If Rs.EOF Then Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 29
Rs.MoveLast End If End Sub Private Sub Form_Unload(Cancel As Integer) Cn.Close Set Cn = Nothing End Sub Aplicacin N 2 Desarrollar consulta a la una tabla aplicacin Curso. que permita ello el realizar usuario una debe Para
seleccionar de un cuadro combinado (combo) el nombre de un profesor y a continuacin se deben visualizar los cursos a su cargo. El diseo de la interfaz debe ser similar a la figura mostrada:
Para el desarrollo de esta aplicacin, proceda ha ubicar los siguientes controles en el formulario: 1 control ComboBox 1 control DataGrid 1 botn de comandos
cc_peralta@hotmail.com
30
En seguida proceda a establecer las propiedades segn se indica: Form1 Nombre Caption BorderStyle Combo1 Nombre Text DataGrid1 Nombre Font HeadFont Command1 Nombre Caption Default CmdBuscar &Buscar True DbgrdCursos Arial (Negrita 10) Arial (Negrita 10) CboProfe FrmConsultaProfe Consulta de profesores 3-Fixed Dialog
A continuacin debe ingresar el cdigo que se muestra en seguida: Dim Cn As ADODB.Connection Dim RsCurso As ADODB.Recordset Dim RsProfe As ADODB.Recordset Private Sub Form_Load() Set Cn = New ADODB.Connection Set RsProfe = New ADODB.Recordset Cn.Open Provider=Microsoft.Jet.OLEDB.4.0; & _ Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 31
Data Source=C:\FundVB\Data\CursosLibres.MDB; & _ Persist Security Info=False RsProfe.ActiveConnection = Cn RsProfe.CursorType = adOpenStatic RsProfe.LockType = adLockOptimistic RsProfe.CursorLocation = adUseClient RsProfe.Open Select Distinct CurProfe From Curso Do While Not RsProfe.EOF() CboProfe.AddItem RsProfe(CurProfe) RsProfe.MoveNext Loop End Sub Private Sub CmdBuscar_Click() Set RsCurso = New ADODB.Recordset RsCurso.ActiveConnection = Cn RsCurso.CursorType = adOpenStatic RsCurso.LockType = adLockReadOnly RsCurso.CursorLocation = adUseClient RsCurso.Open Select CurCodigo As Cdigo, & _ CurNombre As Nombre, CurProfe As Profesor & _ From Curso Where CurProfe = ' & CboProfe.Text & ' Set DbgrdCursos.DataSource = RsCurso End Sub Private Sub Form_Unload(Cancel As Integer) Cn.Close Set Cn = Nothing End Sub Aplicacin N 3 Desarrollar mantenimiento de una aplicacin tablas que de permita la base realizar de el 32 las datos
cc_peralta@hotmail.com
CursosLibres.MDB
(estas
tablas
le
sern
proporcionadas
con
datos suficientes, por el Jefe de Prctica). El diseo de la interfaz debe ser similar a la siguiente figura:
Por ejemplo para realizar el mantenimiento de la tabla Curso debemos preparar los siguientes formularios:
cc_peralta@hotmail.com
33
Para desarrollar nuestra aplicacin debe agregar un mdulo de cdigo al proyecto. Luego ingrese lo siguiente: Public Cn As ADODB.Connection Tambin ser necesario agregar un formulario MDI. Luego, cambie el nombre del formulario por el de MDICursosLibres. En seguida, disee el men para la aplicacin segn se indica: Caption &Mantenimiento MnuManten &Alumnos MnuMantenAlumno Name ShortCut Ninguno Ninguno
cc_peralta@hotmail.com
34
&Nuevo &Editar &Eliminar &Cursos &Nuevo &Editar &Eliminar &Laboratorio &Nuevo &Editar &Eliminar &Distrito &Nuevo &Editar &Eliminar &Salir
MnuMantenAlumnoNuevo MnuMantenAlumnoEditar MnuMantenAlumnoEliminar MnuMantenCurso MnuMantenCursoNuevo MnuMantenCursoEditar MnuMantenCursoEliminar MnuMantenLaboratorio MnuMantenLaboratorioNuevo MnuMantenLaboratorioEditar MnuMantenLaboratorioEliminar MnuMantenDistrito MnuMantenDistritoNuevo MnuMantenDistritoEditar MnuMantenDistritoEliminar MnuMantLinea MnuMantSalir
Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ctrl + X
Luego, haga doble click sobre el formulario e ingrese el siguiente cdigo: Private Sub MDIForm_Load() Set Cn = New ADODB.Connection Cn.Open Provider=Microsoft.Jet.OLEDB.4.0; & _ Data Source=C:\FundVB\Data\CursosLibres.MDB; & _ Persist Security Info=False End Sub Private Sub MnuMantenCursosNuevo_Click() Load FrmNuevoCurso Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 35
FrmNuevoCurso.Show End Sub Private Sub MnuMantenCursosEditar_Click() Load FrmEditarCurso FrmEditarCurso.Show End Sub Private Sub MnuMantenCursosEliminar_Click() Load FrmEliminarCurso FrmEliminarCurso.Show End Sub Para desarrollar la opcin Nuevo de la tabla Curso, aada un nuevo formulario al proyecto. Luego, ubique los siguientes controles en el formulario: 4 etiquetas 4 cajas de texto 3 botones de comando Luego indica: Form1 Nombre Caption BorderStyle MDIChild Label1 Nombre Caption Label2 Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 36 LblCodigo Cdigo: FrmMantenCursos Nuevo curso 3-Fixed Dialog True proceda a establecer las propiedades segn se
Nombre Caption Label3 Nombre Caption Label4 Nombre Caption Text1 Nombre Text Text2 Nombre Text Text3 Nombre Text Text4 Nombre Text Command1 Nombre Caption Command2 Nombre Caption
LblNombre Nombre:
LblVacantes Vacantes:
LblProfesor Profesor:
TxtCurCodigo
TxtCurNombre
TxtCurVacantes
TxtCurProfe
CmdGrabar &Grabar
Una vez establecidas las propiedades, proceda a ingresar el siguiente cdigo: Private Sub Form_Load() CmdGrabar.Enabled = True CmdNuevo.Enabled = False End Sub Private Sub CmdGrabar_Click() Cn.Execute Insert Into Curso(CurCodigo, CurNombre, & _ CurVacantes, CurProfe) Values (' & TxtCurCodigo & _ ', & ' & TxtCurNombre & ', & _ Val(TxtCurVacantes) & , & ' & TxtCurProfe & ') CmdGrabar.Enabled = False CmdNuevo.Enabled = True End Sub Private Sub CmdNuevo_Click() TxtCurCodigo = TxtCurNombre = TxtCurVacantes = TxtCurProfe = CmdGrabar.Enabled = True: CmdNuevo.Enabled = False TxtCurCodigo.SetFocus End Sub Private Sub CmdCerrar_Click() Unload Me Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 38
End Sub Para desarrollar la opcin Editar de la tabla Curso, aada un nuevo formulario al proyecto. Luego, ubique los siguientes controles en el formulario: 1 marco 4 etiquetas 4 cajas de texto 4 botones de comando En seguida proceda a establecer las propiedades segn se indica: Form1 Nombre Caption BorderStyle MDIChild Frame1 Nombre Caption Label1 Nombre Caption Label2 Nombre Caption Label3 Nombre LblVacantes cc_peralta@hotmail.com 39 LblNombre Nombre: LblCodigo Cdigo: FraCodigo FrmMantenCursos Editar curso 3-Fixed Dialog True
Caption Label4 Nombre Caption Text1 Nombre Text Text2 Nombre Text Text3 Nombre Text Text4 Nombre Text Command1 Nombre Caption Command2 Nombre Caption Command3
Vacantes:
LblProfesor Profesor:
TxtCurCodigo
TxtCurNombre
TxtCurVacantes
TxtCurProfe
CmdAceptar &Aceptar
CmdGrabar &Grabar
cc_peralta@hotmail.com
40
CmdNuevo &Nuevo
CmdCerrar &Cerrar
Una vez establecidas las propiedades, proceda a ingresar el siguiente cdigo: Private Sub Form_Load() CmdAceptar.Enabled = True CmdGrabar.Enabled = False CmdNuevo.Enabled = False End Sub Private Sub CmdAceptar_Click() Dim Rs As New ADODB.Recordset Set Rs = Cn.Execute(Select CurNombre, & _ CurVacantes, CurProfe From Curso & _ Where CurCodigo = ' & TxtCurCodigo & ') If (Rs.EOF And Rs.BOF) Then MsgBox No existe ningn curso con este cdigo TxtCurCodigo.SetFocus TxtCurCodigo.SelStart = 0 TxtCurCodigo.SelLength = Len(TxtCurCodigo) Exit Sub End If TxtCurNombre = Rs!CurNombre TxtCurVacantes = Rs!CurVacantes TxtCurProfe = Rs!CurProfe Rs.Close Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 41
Set Rs = Nothing TxtCurCodigo.Enabled = False CmdAceptar.Enabled = False CmdGrabar.Enabled = True CmdNuevo.Enabled = True End Sub Private Sub CmdGrabar_Click() Cn.Execute Update Curso Set CurNombre = ' & _ TxtCurNombre & ', & CurVacantes = & _ Val(TxtCurVacantes) & , & CurProfe = ' & _ TxtCurProfe & ' & Where CurCodigo = ' & _ TxtCurCodigo & ' End Sub Private Sub CmdNuevo_Click() TxtCurCodigo = TxtCurNombre = TxtCurVacantes = TxtCurProfe = CmdAceptar.Enabled = True CmdGrabar.Enabled = False CmdNuevo.Enabled = False TxtCurCodigo.Enabled = True TxtCurCodigo.SetFocus End Sub Private Sub CmdCerrar_Click() Unload Me End Sub
cc_peralta@hotmail.com
42
Para desarrollar la opcin Eliminar de la tabla Cursos, aada un nuevo formulario al proyecto. Luego, ubique los siguientes controles en el formulario: 1 marco 4 etiquetas 4 cajas de texto 4 botones de comando En seguida proceda a establecer las propiedades segn se indica: Form1 Nombre Caption BorderStyle MDIChild Frame1 Nombre Caption Label1 Nombre Caption Label2 Nombre Caption Label3 Nombre Caption LblVacantes Vacantes: cc_peralta@hotmail.com 43 LblNombre Nombre: LblCodigo Cdigo: FraCodigo FrmMantenCursos Eliminar curso 3-Fixed Dialog True
Label4 Nombre Caption Text1 Nombre Text Text2 Nombre Text Text3 Nombre Text Text4 Nombre Text Command1 Nombre Caption Command2 Nombre Caption Command3 Nombre CmdNuevo cc_peralta@hotmail.com 44 CmdEliminar &Eliminar CmdAceptar &Aceptar TxtCurProfe TxtCurVacantes TxtCurNombre TxtCurCodigo LblProfesor Profesor:
&Nuevo
CmdCerrar &Cerrar
Una vez establecidas las propiedades, proceda a ingresar el siguiente cdigo: Private Sub Form_Load() CmdAceptar.Enabled = True CmdEliminar.Enabled = False CmdNuevo.Enabled = False End Sub Private Sub CmdEliminar_Click() Cn.Execute Delete From Curso & _ Where CurCodigo = ' & TxtCurCodigo & ' Call CmdNuevo_Click End Sub Private Sub CmdNuevo_Click() TxtCurCodigo = TxtCurNombre = TxtCurVacantes = TxtCurProfe = CmdAceptar.Enabled = True CmdEliminar.Enabled = False CmdNuevo.Enabled = False TxtCurCodigo.Enabled = True TxtCurCodigo.SetFocus End Sub
cc_peralta@hotmail.com
45
Private Sub CmdAceptar_Click() Dim Rs As New ADODB.Recordset Set Rs = Cn.Execute(Select CurNombre, & _ CurVacantes, CurProfe From Curso & _ Where CurCodigo = ' & TxtCurCodigo & ') If (Rs.EOF And Rs.BOF) Then MsgBox No existe ningn curso con este cdigo TxtCurCodigo.SetFocus TxtCurCodigo.SelStart = 0 TxtCurCodigo.SelLength = Len(TxtCurCodigo) Exit Sub End If TxtCurNombre = Rs!CurNombre TxtCurVacantes = Rs!CurVacantes TxtCurProfe = Rs!CurProfe Rs.Close Set Rs = Nothing TxtCurCodigo.Enabled = False CmdAceptar.Enabled = False CmdEliminar.Enabled = True CmdNuevo.Enabled = True End Sub Private Sub CmdCerrar_Click() Unload Me End Sub De manera similar proceda a desarrollar el cdigo para los formularios de mantenimiento de las dems tablas. Aplicacin N 4 Elaborar una aplicacin que permita recuperar y mantener la informacin de la base de datos CursosLibres.MDB. Para tal Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 46
fin
debe
preparar
un
formulario
que
permita
establecer
la
conexin con el origen de datos. Luego, si la conexin es satisfactoria el usuario tiene la posibilidad de elegir una de las tablas de la base de datos para realizar las operaciones habituales de mantenimiento o simplemente para ejecutar consultas. El diseo de la interfaz debe ser similar a la siguiente figura:
Las opciones Mantenimiento y Consulta deben ser anlogas a las realizadas en aplicaciones anteriores.
Microsoft
GUA DE LABORATORIO N 8 Objetivos Elaborado por Carlos Castillo Peralta
Visual Basic
cc_peralta@hotmail.com
47
Luego de completar este laboratorio, el estudiante ser capaz de: Usar el diseador de reportes DataReport. Utilizar impresos. Consideraciones Para el desarrollo del presente laboratorio Ud. deber crear una carpeta C:\FundVB\Lab8, para guardar sus trabajos correspondientes a este laboratorio. Aplicacin N 1 Disear un reporte que muestre la informacin almacenada en la tabla Cursos. El formato del reporte pedido se muestra a continuacin: y controlar la impresora para obtener reportes
Para disear nuestro reporte, lo primero que debemos hacer es conectarnos a la base de datos CursosLibres.MDB. La conexin la haremos efectiva mediante el Data Environment. Luego, aada un Comando y denomnelo CmCurso. Establezca el nombre de la
cc_peralta@hotmail.com
48
tabla a utilizar, para nuestro caso Curso. El aspecto de la ventana Data Environment deber ser similar a la figura:
Luego, del men Proyecto seleccionar la opcin Agregar Data Report, lo cual permite agregar el diseador de reportes:
En seguida del Data Environment seleccionar cada campo que desee incluir en el reporte y luego arrastre el campo hacia la seccin Detalles del Data Report.
cc_peralta@hotmail.com
49
El diseador de reportes presenta un conjunto de controles que permiten mejorar la presentacin de nuestro reporte. En seguida ubicar los siguientes controles: 2 etiquetas en la seccin Encabezado de informe 4 etiquetas en la seccin Encabezado de pgina A continuacin proceda a establecer las propiedades segn se indica: Etiqueta1 Nombre Caption Font Etiqueta2 Nombre Caption Font Etiqueta3 Nombre Caption Font Etiqueta4 Nombre Caption Font Etiqueta5 Nombre Caption RptLblVacantes Vacantes: cc_peralta@hotmail.com 50 RptLblNombre Nombre: Arial (Negrita 10) RptLblCodigo Cdigo: Arial (Negrita 10) RptLblNombre Reporte de Cursos Arial (Negrita Cursiva 16) RptLblVAB Instituto de Educacin Superior Vctor Andrs Belande Arial (Negrita 09)
Para insertar la fecha actual dar un click con el botn derecho del ratn sobre el diseador de reportes en la seccin de Encabezado de informe, del men contextual que se presenta seleccionar (formato propiedades: DataReport1 DataMember DataSource CmCurso DeCursosLibres la opcin En Insertar control, luego las Fecha actual corto). seguida, cambiar siguientes
Luego, seleccione del men Proyecto la opcin Propiedades de Proyecto, y en la ficha General del cuadro de dilogo Propiedades del proyecto, establecer DataReport1 como objeto inicial. Haga click en Aceptar y ejecute su aplicacin. Aplicacin N 2 Disear un reporte que permita mostrar un listado de profesores y los cursos que tienen a su cargo. Tener en cuenta que la informacin relacionada con cada profesor debe empezar en una pgina nueva. El formato del reporte pedido se muestra a continuacin:
cc_peralta@hotmail.com
51
En datos.
esta Para
aplicacin ello
explicaremos un nuevo
como
crear En
grupos
de
iniciar
proyecto.
seguida,
conectarse a la base de datos CursosLibres.MDB mediante el Data Environment. Luego, aada un Comando y denomnelo CmProfesor. Establezca el nombre de la tabla a utilizar, para nuestro caso Curso. Para realizar el agrupamiento por profesor seleccionar la ficha Agrupar del cuadro de dilogo Propiedades de CmProfesor. A continuacin activar la casilla de verificacin Agrupar comando, luego seleccionar de la lista de campos, el campo por el cual se desea agrupar la informacin, para nuestro caso seleccionar CurProfe y dar un click en el botn > . El cuadro de dilogo Propiedades de CmProfesor debe presentar un aspecto similar a la figura siguiente:
cc_peralta@hotmail.com
52
A continuacin sobre el diseador de reportes dar un click con el botn derecho del ratn y del men emergente que se presenta elegir la opcin Insertar encabezado o pie de grupo. Del objeto DeCursosLibres arrastrar el campo CurProfe de la seccin Campo de resumen en CmProfesor_Grouping al diseador de reportes campos pero a la seccin de la Encabezado seccin de grupo. de Los dems en arrastrarlos Campos Detalle
CmProfesor a la seccin Detalle del generador de reportes. Por ltimo proceda a cambiar las siguientes propiedades del objeto DataReport: DataReport1 DataMember DataSource Aplicacin N 3 Desarrollar una aplicacin que permita crear un reporte para mostrar la informacin de la base de datos 53 CursosLibres.MDB. Para tal fin debe preparar un formulario que Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com CmProfesor_Grouping DeCursosLibres
permita al usuario elegir una tabla, y en seguida se debe generar el reporte correspondiente. Adems el usuario puede obtener una vista preliminar del reporte o una copia impresa. El diseo de la interfaz debe ser similar a la figura que se muestra a continuacin:
Para desarrollar nuestra aplicacin, proceda a disear los reportes correspondientes segn: Tabla Alumno Curso Laboratorio Luego, formulario: 1 marco 3 botones de opcin 3 botones de comando En seguida proceda a establecer las propiedades segn se indica: Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 54 ubique los Reporte DataReport1 DataReport2 DataReport3 siguientes controles sobre el
Form1 Nombre Caption BorderStyle Frame1 Nombre Caption Option1 Nombre Caption Value Option2 Nombre Caption Value Option3 Nombre Caption Value Command1 Nombre Caption Picture CmdVistaPrevia VistaPrevia C:\Archivos de programa\Microsoft Visual Studio\Common\Graphics\Bitmaps\Win95\ Explorer.bmp Style 1-Graphical cc_peralta@hotmail.com 55 OptTablaLaboratorio Laboratorio False OptTablaCurso Curso False OptTablaAlumno Alumno True FraTablas FrmReporteCursosLibres Cursos Libres 3-Fixed Dialog
Command2 Nombre Caption Picture CmdImprimir Imprimir C:\Archivos de programa\Microsoft Visual Studio\Common\Graphics\Bitmaps\Win95\ Printfld.bmp Style Command3 Nombre Caption CmdSalir Salir 1-Graphical
Una vez establecidas las propiedades, proceda a ingresar el siguiente cdigo: Private Sub CmdImprimir_Click() If OptTablaAlumno.Value Then DataReport1.PrintReport True ElseIf OptTablaCurso.Value Then DataReport2.PrintReport True ElseIf OptTablaLaboratorio.Value Then DataReport2.PrintReport True End If End Sub Private Sub CmdVistaPrevia_Click() If OptTablaAlumno.Value Then DataReport1.Show ElseIf OptTablaCurso.Value Then DataReport2.Show ElseIf OptTablaLaboratorio.Value Then DataReport2.Show End If End Sub Elaborado por Carlos Castillo Peralta cc_peralta@hotmail.com 56
Private Sub CmdSalir_Click() Unload Me End Sub Cuando ejecute la aplicacin, al dar un click en el botn Imprimir se visualizar el siguiente cuadro de dilogo, el cual nos permitir confirmar o cancelar la impresin:
Aplicacin N 4 Disear un reporte combinando datos de la tabla Curso y Laboratorio. El reporte debe mostrar el cdigo del curso, el nombre del curso, el nombre del profesor de teora, el nombre del jefe de prctica y el horario de laboratorio. Dar formato al reporte segn su criterio.
FIN PARTE II
cc_peralta@hotmail.com
57