Você está na página 1de 57

Visual Basic .

Net 2003

Creacin de Consultas y Reportes con


base de datos de Access

Joel Martin Chuco Marrufo


1
Visual Basic .Net 2003

APLICACIN 49

En este formulario a realizar una nueva forma de dar mantenimiento a una


tabla de la base de datos, en este caso la tabla tbamigos de la base de datos
bdAgenda.

bdAgenda

Creacin del Mdulo llamado BaseDatos

No se olviden de hacer las referencias respectivas y tener ubicada la base de


datos en la carpeta Bin del proyecto.

Imports ADODB

Module BaseDatos

Public CN As New ADODB.Connection()


Public RS As New ADODB.Recordset()
Public Campo As ADODB.Fields = RS.Fields
Dim Resp As Integer

Public Sub AbrirBase()


CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=bdagenda.mdb;"
Try
CN.Open()
Catch ex As Exception
Resp = CN.Errors.Count
If Resp <> 0 Then
MsgBox("ERROR: No se logro la Conexin", MsgBoxStyle.Critical, "Error
de Conexin")
Application.ExitThread()
End If
End Try
End Sub

Joel Martin Chuco Marrufo


2
Visual Basic .Net 2003

Public Sub AbrirAmigos()


With RS
.ActiveConnection = CN
.CursorType = CursorTypeEnum.adOpenKeyset
.LockType = LockTypeEnum.adLockOptimistic
.Open("Select*from tbamigos")
End With
End Sub

Public Sub CerrarBase()


Try
CN.Close()
Catch ex As Exception
MsgBox("ERROR: No se logro el Cierre de Conexin a la Base de Datos, ya
que la Base de Datos NO Esta Abierta o NO se Hall", MsgBoxStyle.Critical,
"Error de Cierre de Conexin")
Application.ExitThread()
End Try
End Sub

End Module

Formulario frmAplicacion49

Joel Martin Chuco Marrufo


3
Visual Basic .Net 2003

1. Paso N 01: Diseo del Formulario.

2. Paso N 02: Asignacin de nombres a los controles.

Control Name

TextBox1 txtNombre
TextBox2 txtDireccion
TextBox3 txtDistrito
TextBox4 txtTelefono
TextBox5 txtFecNac
TextBox6 txtSexo
TextBox7 txtPeso
ListBox1 lstAmigos
Button1 btnGrabar
Button2 btnCancelar
Button3 btnAdicionar
Button4 btnModificar
Button5 btnEliminar
Button6 btnSalir

3. Paso N 03: Codificacin.

Procedimiento LlenarAmigos

Sub LlenarAmigos()
Me.lstAmigos.Items.Clear()
If RS.State = 1 Then
RS.MoveFirst()
While (Not RS.EOF)
lstAmigos.Items.Add(CStr(Campo.Item(0).Value))
RS.MoveNext()
End While
Else
MsgBox("ERROR: No Se Logr Abrir La Tabla Amigos",
MsgBoxStyle.Critical, "Error al Guardar")
Exit Sub
End If
End Sub

Procedimiento SoloLectura

Sub SoloLectura(ByVal Activar As Boolean)


Me.txtDireccion.ReadOnly = Activar
Me.txtDistrito.ReadOnly = Activar
Me.txtFecNac.ReadOnly = Activar
Me.txtNombre.ReadOnly = Activar
Me.txtPeso.ReadOnly = Activar
Me.txtSexo.ReadOnly = Activar
Me.txtTelefono.ReadOnly = Activar
End Sub

Joel Martin Chuco Marrufo


4
Visual Basic .Net 2003

Procedimiento LlenarControles

Sub LlenarControles(ByVal Nombre As String)


RS.MoveFirst()
While (Nombre <> CStr(Campo.Item(0).Value))
If Nombre = CStr(Campo.Item(0).Value) Then
Exit While
End If
RS.MoveNext()
End While
Me.txtNombre.Text = CStr(Campo.Item(0).Value)
Me.txtDireccion.Text = CStr(Campo.Item(1).Value)
Me.txtDistrito.Text = CStr(Campo.Item(2).Value)
Me.txtTelefono.Text = CStr(Campo.Item(3).Value)
Me.txtFecNac.Text = CStr(Campo.Item(4).Value)
Me.txtSexo.Text = CStr(Campo.Item(5).Value)
Me.txtPeso.Text = CStr(Campo.Item(6).Value)
End Sub

Procedimiento LimpiarControles

Sub LimpiarControles()
Me.txtNombre.Text = ""
Me.txtDireccion.Text = ""
Me.txtDistrito.Text = ""
Me.txtTelefono.Text = ""
Me.txtFecNac.Text = ""
Me.txtSexo.Text = ""
Me.txtPeso.Text = ""
Me.txtNombre.Focus()
End Sub

Procedimiento ActivarBotones

Sub ActivarBotones(ByVal Activar As Boolean)


Me.btnAdicionar.Enabled = Not Activar
Me.btnModificar.Enabled = Activar
Me.btnEliminar.Enabled = Activar
Me.btnSalir.Enabled = Not Activar
Me.btnGrabar.Enabled = Activar
Me.btnCancelar.Enabled = Activar
End Sub

Joel Martin Chuco Marrufo


5
Visual Basic .Net 2003

Procedimiento Verificar

Sub Verificar()
Dim Activar As Boolean
Dim Texto As String
Texto = Me.txtSexo.Text
If Me.txtDireccion.Text = "" Or Me.txtDistrito.Text = "" Then
Activar = False
ElseIf Me.txtFecNac.Text = "" Or Me.txtNombre.Text = "" Then
Activar = False
ElseIf Me.txtPeso.Text = "" Or Me.txtSexo.Text = "" Then
Activar = False
ElseIf Me.txtTelefono.Text = "" Then
Activar = False
ElseIf Not IsNumeric(Me.txtPeso.Text) = True Then
Activar = False
ElseIf Not IsDate(Me.txtFecNac.Text) = True Then
Activar = False
ElseIf Me.txtSexo.Text = "M" Or Me.txtSexo.Text = "F" Then
Activar = True
ElseIf Me.txtSexo.Text = "m" Or Me.txtSexo.Text = "f" Then
Activar = True
Else
Activar = True
End If
If Activar = True Then
Me.btnGrabar.Enabled = True
Else
Me.btnGrabar.Enabled = False
End If
End Sub

frmmantenimiento (Evento Load)

Call AbrirBase()
Call AbrirAmigos()
Call LlenarAmigos()
SoloLectura(True)
ActivarBotones(False)

lstAmigos (Evento SelectedIndexChanged)

Call LlenarControles(Me.lstAmigos.SelectedItem)
Call SoloLectura(True)
Me.btnCancelar.Enabled = False
Me.btnGrabar.Enabled = False
Me.btnModificar.Enabled = True
Me.btnEliminar.Enabled = True

Joel Martin Chuco Marrufo


6
Visual Basic .Net 2003

btnAdicionar (Evento Click)

RS.AddNew()
Me.lstAmigos.Enabled = False
LimpiarControles()
SoloLectura(False)

btnModificar (Evento Click)

SoloLectura(False)
Me.lstAmigos.Enabled = False

btnEliminar (Evento Click)

RS.Delete()
LlenarAmigos()
LimpiarControles()

btnSalir (Evento Click)

Me.Close()

btnCancelar (Evento Click)

RS.CancelUpdate()
SoloLectura(True)
LlenarAmigos()

btnGrabar (Evento Click)

With Campo
.Item(0).Value = CStr(Me.txtNombre.Text)
.Item(1).Value = CStr(Me.txtDireccion.Text)
.Item(2).Value = CStr(Me.txtDistrito.Text)
.Item(3).Value = CStr(Me.txtTelefono.Text)
.Item(4).Value = CStr(Me.txtFecNac.Text)
.Item(5).Value = CStr(Me.txtSexo.Text)
.Item(6).Value = CStr(Me.txtPeso.Text)
End With
RS.Update()
ActivarBotones(False)
SoloLectura(True)
LlenarAmigos()
LlenarControles(Me.txtNombre.Text)
Me.lstAmigos.SelectedIndex = Me.lstAmigos.Items.Count - 1
Me.lstAmigos.Enabled = True

frmmantenimiento (Evento Closing)

CerrarBase()

Joel Martin Chuco Marrufo


7
Visual Basic .Net 2003

txtNombre, txtDireccion, txtTelefono, txtDistrito, txtSexo, txtPeso,


txtFecNac (Evento TextChanged)

Verificar()

APLICACIN 50

En esta aplicacin aprenderemos a usar una base de datos relacionada,


hacer consultas, dar mantenimiento a las tablas y llamar todos estos formularios
mediante un MDI, esto prcticamente seria un sistema pequeo. Primero
crearemos una base de datos llamada bdAdmision.

bdAdmision

tbAula tbCarrera

tbDatos tbPostulante

tbPuntaje tbTurno

Joel Martin Chuco Marrufo


8
Visual Basic .Net 2003

Relaciones de la Base de Datos bdAdmision

Creacin del Mdulo llamado BaseDatos

No se olviden de hacer las referencias respectivas y tener ubicada la base de


datos en la carpeta Bin del proyecto.

Imports ADODB

Module BaseDatos

Public cnAdmision As New ADODB.Connection()


Public rsPostulante, rsDatos, rsCarrera As New ADODB.Recordset()
Public rsTurno, rsAula, rsPuntaje As New ADODB.Recordset()
Public cpPostulante As ADODB.Fields = rsPostulante.Fields
Public cpDatos As ADODB.Fields = rsDatos.Fields
Public cpCarrera As ADODB.Fields = rsCarrera.Fields
Public cpTurno As ADODB.Fields = rsTurno.Fields
Public cpAula As ADODB.Fields = rsAula.Fields
Public cpPuntaje As ADODB.Fields = rsPuntaje.Fields
Dim Resp As Integer

Public Sub AbrirBase()


cnAdmision.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source = bdAdmision.mdb;"
Try
cnAdmision.Open()
Catch ex As Exception
Resp = cnAdmision.Errors.Count
If Resp <> 0 Then
MsgBox("ERROR: No se logro la Conexin", MsgBoxStyle.Critical, "Error
de Conexin")
Application.ExitThread()
End If
End Try
End Sub

Joel Martin Chuco Marrufo


9
Visual Basic .Net 2003

Public Sub AbrirPostulante()


With rsPostulante
.ActiveConnection = cnAdmision
.CursorType = CursorTypeEnum.adOpenKeyset
.LockType = LockTypeEnum.adLockOptimistic
.Open("select*from tbPostulante")
End With
End Sub

Public Sub AbrirDatos()


With rsDatos
.ActiveConnection = cnAdmision
.CursorType = CursorTypeEnum.adOpenKeyset
.LockType = LockTypeEnum.adLockOptimistic
.Open("select*from tbDatos")
End With
End Sub

Public Sub AbrirCarrera()


With rsCarrera
.ActiveConnection = cnAdmision
.CursorType = CursorTypeEnum.adOpenKeyset
.LockType = LockTypeEnum.adLockOptimistic
.Open("select*from tbCarrera")
End With
End Sub

Public Sub AbrirTurno()


With rsTurno
.ActiveConnection = cnAdmision
.CursorType = CursorTypeEnum.adOpenKeyset
.LockType = LockTypeEnum.adLockOptimistic
.Open("select*from tbTurno")
End With
End Sub

Public Sub AbrirAula()


With rsAula
.ActiveConnection = cnAdmision
.CursorType = CursorTypeEnum.adOpenKeyset
.LockType = LockTypeEnum.adLockOptimistic
.Open("Select*from tbAula")
End With
End Sub

Public Sub AbrirPuntaje()


With rsPuntaje
.ActiveConnection = cnAdmision
.CursorType = CursorTypeEnum.adOpenKeyset
.LockType = LockTypeEnum.adLockOptimistic
.Open("select*from tbPuntaje")
End With
End Sub

Public Sub CerrarBase()


cnAdmision.Close()
End Sub

Joel Martin Chuco Marrufo


10
Visual Basic .Net 2003

Public Sub CerrarPostulante()


rsPostulante.Close()
End Sub

Public Sub CerrarDatos()


rsDatos.Close()
End Sub

Public Sub CerrarCarrera()


rsCarrera.Close()
End Sub

Public Sub CerrarTurno()


rsTurno.Close()
End Sub

Public Sub CerrarAula()


rsAula.Close()
End Sub

Public Sub CerrarPuntaje()


rsPuntaje.Close()
End Sub

End Module

Formulario frmAplicacion50

Joel Martin Chuco Marrufo


11
Visual Basic .Net 2003

1. Disear el Formulario, como lo ven va a contener un MainMenu y va a ser


declarado como IsMDIContainer como True.

2. Asignar los Nombres a los controles.

Control Name

MenuItem1 mnuPostulante
MenuItem3 mnuMatricular
MenuItem3 mnuIngPunt
MenuItem4 mnuConsultas
MenuItem5 mnuConsuPost
MenuItem6 mnuConsAula
MenuItem7 mnuConsCar

3. Codificar.

frmAplicacion50 (Evento Load)

Call AbrirBase()

mnuMatricular (Evento Click)

Dim Formulario As New frmMatricula()


Formulario.MdiParent = Me
Formulario.Show()

mnuIngPunt (Evento Click)

Dim Formulario As New frmPuntaje()


Formulario.MdiParent = Me
Formulario.Show()

mnuConsuPost (Evento Click)

Dim Formulario As New frmConsultavb()


Formulario.MdiParent = Me
Formulario.Show()

mnuConsAula (Evento Click)

Dim Formulario As New frmConsultaAula()


Formulario.MdiParent = Me
Formulario.Show()

mnuConsCar (Evento Click)

Dim Formulario As New frmConsultaIng()


Formulario.MdiParent = Me
Formulario.Show()

Joel Martin Chuco Marrufo


12
Visual Basic .Net 2003

frmAplicacion50 (Evento Closing)

CerrarBase()

Formulario frmMatricula

1. Disear el Formulario.

2. Asignar los nombres a los controles.

Control Name

TextBox1 txtCodigo
TextBox2 txtNombre
TextBox3 txtApellidos
TextBox4 txtEdad
ComboBox1 cboCarrera
ComboBox2 cboTurno
ComboBox3 cboAula
Button1 btnNuevo
Button2 btnGrabar
Button3 btnSalir

Joel Martin Chuco Marrufo


13
Visual Basic .Net 2003

3. Codificar.

Procedimiento LlenarCarrera

Sub LlenarCarrera()
rsCarrera.MoveFirst()
While Not rsCarrera.EOF
Me.cboCarrera.Items.Add(CStr(cpCarrera.Item(1).Value))
rsCarrera.MoveNext()
End While
End Sub
Procedimiento LlenarTurno

Sub LlenarTurno()
rsTurno.MoveFirst()
While Not rsTurno.EOF
Me.cboTurno.Items.Add(CStr(cpTurno.Item(1).Value))
rsTurno.MoveNext()
End While
End Sub

Procedimiento LlenarAula

Sub LlenarAula()
rsAula.MoveFirst()
While Not rsAula.EOF
Me.cboAula.Items.Add(CStr(cpAula.Item(1).Value))
rsAula.MoveNext()
End While
End Sub

Procedimiento CodigoCarrera

Sub CodigoCarrera(ByVal Carrera As String)


rsCarrera.MoveFirst()
While (Carrera <> CStr(cpCarrera.Item(1).Value))
rsCarrera.MoveNext()
End While
End Sub

Procedimiento CodigoTurno

Sub CodigoTurno(ByVal Turno As String)


rsTurno.MoveFirst()
While (Turno <> CStr(cpTurno.Item(1).Value))
rsTurno.MoveNext()
End While
End Sub

Joel Martin Chuco Marrufo


14
Visual Basic .Net 2003

Procedimiento CodigoAula

Sub CodigoAula(ByVal Aula As String)


rsAula.MoveFirst()
While (Aula <> CStr(cpAula.Item(1).Value))
rsAula.MoveNext()
End While
End Sub

Procedimiento LimpiarControles

Sub LimpiarControles()
Me.txtApellidos.Text = ""
Me.txtCodigo.Text = ""
Me.txtEdad.Text = ""
Me.txtNombre.Text = ""
Me.cboAula.Text = ""
Me.cboCarrera.Text = ""
Me.cboTurno.Text = ""
Me.txtCodigo.Focus()
End Sub

Procedimiento BloquearControles

Sub BloquearControles(ByVal Bloquear As Boolean)


Me.txtApellidos.ReadOnly = Bloquear
Me.txtCodigo.ReadOnly = Bloquear
Me.txtEdad.ReadOnly = Bloquear
Me.txtNombre.ReadOnly = Bloquear
Me.cboAula.Enabled = Not Bloquear
Me.cboCarrera.Enabled = Not Bloquear
Me.cboTurno.Enabled = Not Bloquear
Me.btnNuevo.Enabled = Bloquear
Me.btnGrabar.Enabled = Not Bloquear
End Sub

frmMatricula (Evento Load)

Call AbrirCarrera()
Call AbrirTurno()
Call AbrirAula()
Call AbrirPostulante()
Call AbrirDatos()
Call LlenarCarrera()
Call LlenarTurno()
Call LlenarAula()
Call LimpiarControles()
Call BloquearControles(True)

Joel Martin Chuco Marrufo


15
Visual Basic .Net 2003

btnNuevo (Evento Click)

rsPostulante.AddNew()
rsDatos.AddNew()
Call LimpiarControles()
Call BloquearControles(False)

btnGrabar (Evento Click)

Call CodigoCarrera(Me.cboCarrera.Text)
Call CodigoTurno(Me.cboTurno.Text)
Call CodigoAula(Me.cboAula.Text)
With cpDatos
.Item(0).Value = CStr(Me.txtCodigo.Text)
.Item(1).Value = CStr(Me.txtNombre.Text)
.Item(2).Value = CStr(Me.txtApellidos.Text)
.Item(3).Value = CStr(Me.txtEdad.Text)
End With
rsDatos.Update()
With cpPostulante
.Item(0).Value = CStr(Me.txtCodigo.Text)
.Item(1).Value = CStr(cpCarrera.Item(0).Value)
.Item(2).Value = CStr(cpTurno.Item(0).Value)
.Item(3).Value = CStr(cpAula.Item(0).Value)
End With
rsPostulante.Update()
Call BloquearControles(True)

btnSalir (Evento Click)

Me.Close()

frmMatricula (Evento Closing)

Call CerrarCarrera()
Call CerrarTurno()
Call CerrarAula()
Call CerrarPostulante()
Call CerrarDatos()

Joel Martin Chuco Marrufo


16
Visual Basic .Net 2003

Formulario frmPuntaje

1. Disear el Formulario.

2. Asignar los nombres a los controles.

Control Name

TextBox1 txtRC
TextBox2 txtRI
Label1 txtNombre
Label2 txtApellidos
ComboBox1 cboCodigo
Button1 btnNuevo
Button2 btnGrabar
Button3 btnSalir

Joel Martin Chuco Marrufo


17
Visual Basic .Net 2003

3. Codificar.

Procedimiento LlenarCodigo

Sub LlenarCodigos()
rsDatos.MoveFirst()
While Not rsDatos.EOF
Me.cboCodigo.Items.Add(CStr(cpDatos.Item(0).Value))
rsDatos.MoveNext()
End While
End Sub

Procedimiento LlenarDatos

Sub LlenarDatos(ByVal Codigo As String)


rsDatos.MoveFirst()
While Codigo <> CStr(cpDatos.Item(0).Value)
rsDatos.MoveNext()
End While
Me.lblNombres.Text = CStr(cpDatos.Item(1).Value)
Me.lblApellidos.Text = CStr(cpDatos.Item(2).Value)
End Sub

Procedimiento Limpiar

Sub Limpiar()
Me.lblApellidos.Text = ""
Me.lblNombres.Text = ""
Me.txtRC.Text = ""
Me.txtRI.Text = ""
Me.cboCodigo.Text = ""
Me.cboCodigo.Focus()
End Sub

Procedimiento BloquearControles

Sub BloquearControles(ByVal activar As Boolean)


Me.txtRC.ReadOnly = activar
Me.txtRI.ReadOnly = activar
Me.cboCodigo.Enabled = Not activar
Me.btnNuevo.Enabled = activar
Me.btnGrabar.Enabled = Not activar
End Sub

frmPuntaje (Evento Load)

Call AbrirDatos()
Call AbrirPuntaje()
Call LlenarCodigos()
Call BloquearControles(True)
Call Limpiar()

Joel Martin Chuco Marrufo


18
Visual Basic .Net 2003

frmPuntaje (Evento Closing)

Call CerrarDatos()
Call CerrarPuntaje()

cboCodigo (Evento SelectedIndexChanged)

Call LlenarDatos(Me.cboCodigo.Text)

btnSalir (Evento Click)

Me.Close()

btnNuevo (Evento Click)

Call BloquearControles(False)
Call Limpiar()
rsPuntaje.AddNew()

btnGrabar (Evento Click)

Dim Puntaje As Integer


Dim Ingreso As String
Puntaje = Val(Me.txtRC.Text) * 2
Puntaje = Puntaje - Val(Me.txtRI.Text)
If Puntaje > 50 Then
Ingreso = "Si"
Else
Ingreso = "No"
End If
With cpPuntaje
.Item(0).Value = CStr(cpDatos.Item(0).Value)
.Item(1).Value = CStr(Me.txtRC.Text)
.Item(2).Value = CStr(Me.txtRI.Text)
.Item(3).Value = CStr(Puntaje)
.Item(4).Value = CStr(Ingreso)
End With
rsPuntaje.Update()
Call BloquearControles(True)

Joel Martin Chuco Marrufo


19
Visual Basic .Net 2003

Formulario frmConsultavb

1. Disear el Formulario.

2. Asignar los nombres a los controles.

Control Name

ListBox1 lstCodigo
ListBox2 lstNombre
ListBox3 lstApellidos
ListBox4 lstCarrera
Button1 btnAceptar
Button2 btnSalir

Joel Martin Chuco Marrufo


20
Visual Basic .Net 2003

3. Codificar.

Procedimiento LlenarDatos

Sub LlenarDatos()
rsDatos.MoveFirst()
While Not rsDatos.EOF
Me.lstCodigo.Items.Add(CStr(cpDatos.Item(0).Value))
Me.lstNombres.Items.Add(CStr(cpDatos.Item(1).Value))
Me.lstApellidos.Items.Add(CStr(cpDatos.Item(2).Value))
rsPostulante.MoveFirst()
While CStr(cpDatos.Item(0).Value) <> CStr(cpPostulante.Item(0).Value)
rsPostulante.MoveNext()
End While
Carrera(CStr(cpPostulante.Item(1).Value))
Me.lstCarrera.Items.Add(CStr(cpCarrera.Item(1).Value))
rsDatos.MoveNext()
End While
End Sub

Procedimiento Carrera

Sub Carrera(ByVal CodigoCarrera As String)


rsCarrera.MoveFirst()
While CodigoCarrera <> cpCarrera.Item(0).Value
rsCarrera.MoveNext()
End While
End Sub

frmConsultavb (Evento Load)

Call AbrirDatos()
Call AbrirCarrera()
Call AbrirPostulante()
Call LlenarDatos()

frmConsultavb (Evento Closing)

Call CerrarDatos()
Call CerrarCarrera()
Call CerrarPostulante()

btnAceptar, btnSalir (Evento Click)

Me.Close()

Joel Martin Chuco Marrufo


21
Visual Basic .Net 2003

Formulario frmConsultaAula

1. Disear el Formulario.

2. Asignar los nombres a los controles.

Control Name

ListBox1 lstCodigo
ListBox2 lstApellidos
ListBox3 lstNombre
ListBox4 lstTurno
Button1 btnSalir
ComboBox1 cboAula

Joel Martin Chuco Marrufo


22
Visual Basic .Net 2003

3. Codificar.

Procedimiento LlenarAula

Sub LlenarAula()
rsAula.MoveFirst()
While Not rsAula.EOF
Me.cboAula.Items.Add(CStr(cpAula.Item(1).Value))
rsAula.MoveNext()
End While
End Sub

Procedimiento Datos

Sub Datos(ByVal CodPos As String)


rsDatos.MoveFirst()
While CodPos <> CStr(cpDatos.Item(0).Value)
rsDatos.MoveNext()
End While
Me.lstCodigo.Items.Add(CStr(cpDatos.Item(0).Value))
Me.lstNombres.Items.Add(CStr(cpDatos.Item(1).Value))
Me.lstApellidos.Items.Add(CStr(cpDatos.Item(2).Value))
End Sub

Procedimiento Turno

Sub Turno(ByVal CodTurno As String)


rsTurno.MoveFirst()
While CodTurno <> CStr(cpTurno.Item(0).Value)
rsTurno.MoveNext()
End While
Me.lstTurno.Items.Add(CStr(cpTurno.Item(1).Value))
End Sub

Procedimiento Postulante

Sub Postulante(ByVal CodAula As String)


Me.lstApellidos.Items.Clear()
Me.lstCodigo.Items.Clear()
Me.lstNombres.Items.Clear()
Me.lstTurno.Items.Clear()
rsPostulante.MoveFirst()
While Not rsPostulante.EOF
If CStr(cpPostulante.Item(3).Value) = CodAula Then
Call Datos(CStr(cpPostulante.Item(0).Value))
Call Turno(CStr(cpPostulante.Item(2).Value))
End If
rsPostulante.MoveNext()
End While
End Sub

Joel Martin Chuco Marrufo


23
Visual Basic .Net 2003

Procedimiento Aula

Sub Aula(ByVal NombAula As String)


rsAula.MoveFirst()
While NombAula <> CStr(cpAula.Item(1).Value)
rsAula.MoveNext()
End While
Call Postulante(CStr(cpAula.Item(0).Value))
End Sub

frmConsultaAula (Evento Load)

Call AbrirPostulante()
Call AbrirDatos()
Call AbrirTurno()
Call AbrirAula()
Call LlenarAula()

frmConsultaAula (Evento Closing)

Call CerrarPostulante()
Call CerrarDatos()
Call CerrarTurno()
Call CerrarAula()

cboAula (Evento SelectedIndexChanged)

Call Aula(CStr(Me.cboAula.Text))

btnSalir (Evento Click)

Me.Close()

Joel Martin Chuco Marrufo


24
Visual Basic .Net 2003

Formulario frmConsultaIng

1. Disear el Formulario.

2. Asignar los nombres a los controles.

Control Name

ListBox1 lstCodigo
ListBox2 lstNombre
ListBox3 lstApellidos
Button1 btnSalir
ComboBox1 cboCarrera

Joel Martin Chuco Marrufo


25
Visual Basic .Net 2003

3. Codificar.

Procedimiento LlenarCarreras

Sub LlenarCarreras()
rsCarrera.MoveFirst()
While Not rsCarrera.EOF
Me.cboCarrera.Items.Add(CStr(cpCarrera.Item(1).Value))
rsCarrera.MoveNext()
End While
End Sub

Procedimiento Datos

Sub Datos(ByVal CodPost As String)


rsDatos.MoveFirst()
While CodPost <> CStr(cpDatos.Item(0).Value)
rsDatos.MoveNext()
End While
Me.lstApellidos.Items.Add(CStr(cpDatos.Item(2).Value))
Me.lstCodigo.Items.Add(CStr(cpDatos.Item(0).Value))
Me.lstNombres.Items.Add(CStr(cpDatos.Item(1).Value))
End Sub

Procedimiento Carrera

Sub Carrera(ByVal NombCarrera As String)


rsCarrera.MoveFirst()
While NombCarrera <> CStr(cpCarrera.Item(1).Value)
rsCarrera.MoveNext()
End While
Call Postulante(CStr(cpCarrera.Item(0).Value))
End Sub

Procedimiento Postulante

Sub Postulante(ByVal CodCarrera As String)


rsPostulante.MoveFirst()
While Not rsPostulante.EOF
If CodCarrera = CStr(cpPostulante.Item(1).Value) Then
Call Puntaje(CStr(cpPostulante.Item(0).Value))
End If
rsPostulante.MoveNext()
End While
End Sub

Joel Martin Chuco Marrufo


26
Visual Basic .Net 2003

Procedimiento Puntaje

Sub Puntaje(ByVal CodPost As String)


rsPuntaje.MoveFirst()
While CodPost <> CStr(cpPuntaje.Item(0).Value)
rsPuntaje.MoveNext()
End While
If CStr(cpPuntaje.Item(4).Value) = "Si" Then
Call Datos(CodPost)
End If
End Sub

frmConsultaIng (Evento Load)

Call AbrirPostulante()
Call AbrirDatos()
Call AbrirCarrera()
Call AbrirPuntaje()
Call LlenarCarreras()

frmConsultaIng (Evento Closing)

Call CerrarPostulante()
Call CerrarDatos()
Call CerrarCarrera()
Call CerrarPuntaje()

cboCarrera (Evento SelectedIndexChanged)

Me.lstApellidos.Items.Clear()
Me.lstCodigo.Items.Clear()
Me.lstNombres.Items.Clear()
Call Carrera(Me.cboCarrera.Text)

btnSalir (Evento Click)

Me.Close()

Joel Martin Chuco Marrufo


27
Visual Basic .Net 2003

REPORTES

Para crear reportes con el Crystal Report que nos viene con el Visual Studio,
primero tendremos que crear un proyecto, y de ah les ir explicando paso a paso.

APLICACIN 51

En esta aplicacin aprenderemos a usar y crear un reporte con el Crystal


Report, crearemos una base de datos llamada bdExamen, que contendr las
siguientes tablas.

bdExamen

tbCarrera tbPagos

tbRecibo

Joel Martin Chuco Marrufo


28
Visual Basic .Net 2003

Creacin del Mdulo llamado BaseDatos

No se olviden de hacer las referencias respectivas y tener ubicada la base de


datos en la carpeta Bin del proyecto.

Imports ADODB

Module BaseDatos

Public cnExamen As New ADODB.Connection()


Public rsCarrera, rsPagos, rsRecibo As New ADODB.Recordset()
Public cpCarrera As ADODB.Fields = rsCarrera.Fields
Public cpPagos As ADODB.Fields = rsPagos.Fields
Public cpRecibo As ADODB.Fields = rsRecibo.Fields

Public Sub AbrirBase()


cnExamen.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=bdExamen.mdb;"
Try
cnExamen.Open()
Catch ex As Exception
MsgBox("Error: No se logr la conexin a la base de Datos",
MsgBoxStyle.Critical, "Error de Conexin")
Application.ExitThread()
End Try
End Sub

Public Sub AbrirCarrera()


With rsCarrera
.ActiveConnection = cnExamen
.CursorType = CursorTypeEnum.adOpenKeyset
.LockType = LockTypeEnum.adLockOptimistic
.Open("select*from tbCarrera")
End With
End Sub

Public Sub AbrirPagos()


With rsPagos
.ActiveConnection = cnExamen
.CursorType = CursorTypeEnum.adOpenKeyset
.LockType = LockTypeEnum.adLockOptimistic
.Open("select*from tbPagos")
End With
End Sub

Public Sub AbrirRecibo()


With rsRecibo
.ActiveConnection = cnExamen
.CursorType = CursorTypeEnum.adOpenKeyset
.LockType = LockTypeEnum.adLockOptimistic
.Open("select*from tbRecibo")
End With
End Sub

Joel Martin Chuco Marrufo


29
Visual Basic .Net 2003

Public Sub CerrarBase()


cnExamen.Close()
End Sub

Public Sub CerrarCarrera()


rsCarrera.Close()
End Sub

Public Sub CerrarPagos()


rsPagos.Close()
End Sub

Public Sub CerrarRecibo()


rsRecibo.Close()
End Sub

End Module

Formulario frmMDI

1. Disear el Formulario, como lo ven va a contener un MainMenu y va a ser


declarado como IsMDIContainer como True.

Joel Martin Chuco Marrufo


30
Visual Basic .Net 2003

2. Asignar los Nombres a los controles.

Control Name

MenuItem1 mnuPostulantes
MenuItem3 mnuMantCar
MenuItem3 mnuMantPag
MenuItem4 mnuMantRec
MenuItem5 MenuItem5
MenuItem6 mnuSalir
MenuItem7 mnuReportes
MenuItem8 mnuRepTur
MenuItem9 mnuRepCar

3. Codificar.

frmMDI (Evento Load)

Call AbrirBase()

mnuSalir (Evento Click)

Me.Close()

mnuMantCar (Evento Click)

Dim Formulario As New frmCarrera()


Formulario.MdiParent = Me
Formulario.Show()

mnuMantPag (Evento Click)

Dim Formulario As New frmPagos()


Formulario.MdiParent = Me
Formulario.Show()

mnuMantRec (Evento Click)

Dim Formulario As New frmMatricula()


Formulario.MdiParent = Me
Formulario.Show()

mnuRepTur (Evento Click)

Dim Formulario As New frmReportView()


Formulario.MdiParent = Me
Formulario.Show()

Joel Martin Chuco Marrufo


31
Visual Basic .Net 2003

mnuRepCar (Evento Click)

Dim Formulario As New frmReporte()


Formulario.MdiParent = Me
Formulario.Show()

frmMDI (Evento Closing)

Call CerrarBase()

Formulario frmCarrera

1. Paso N 01: Diseo del Formulario.

Joel Martin Chuco Marrufo


32
Visual Basic .Net 2003

2. Paso N 02: Asignacin de nombres a los controles.

Control Name

TextBox1 txtCodigo
TextBox2 txtNombre
ComboBox1 cbocarrera
ComboBox2 cboTurno
ListBox1 lstCodigo
ListBox2 lstNombre
ListBox3 lstCarrera
ListBox4 lstTurno
Button1 btnNuevo
Button2 btnGrabar
Button3 btnSalir

3. Paso N 03: Codificacin.

Procedimiento Limpiar

Sub Limpiar()
Me.txtCodigo.Text = ""
Me.txtNombre.Text = ""
Me.cboCarrera.Text = ""
Me.cboTurno.Text = ""
Me.txtCodigo.Focus()
End Sub

Procedimiento Bloquear

Sub Bloquear(ByVal Bloqueo As Boolean)


Me.txtCodigo.ReadOnly = Bloqueo
Me.txtNombre.ReadOnly = Bloqueo
Me.cboCarrera.Enabled = Not Bloqueo
Me.cboTurno.Enabled = Not Bloqueo
Me.btnGrabar.Enabled = Not Bloqueo
Me.btnNuevo.Enabled = Bloqueo
End Sub

Joel Martin Chuco Marrufo


33
Visual Basic .Net 2003

Procedimiento LlenarListas

Sub LlenarListas()
Me.lstCarrera.Items.Clear()
Me.lstCodigo.Items.Clear()
Me.lstNombre.Items.Clear()
Me.lstTurno.Items.Clear()
rsCarrera.MoveFirst()
While Not rsCarrera.EOF
With cpCarrera
Me.lstCodigo.Items.Add(CStr(.Item(0).Value))
Me.lstNombre.Items.Add(CStr(.Item(1).Value))
Me.lstCarrera.Items.Add(CStr(.Item(2).Value))
Me.lstTurno.Items.Add(CStr(.Item(3).Value))
End With
rsCarrera.MoveNext()
End While
End Sub

frmCarrera (Evento Load)

Me.cboCarrera.Items.Add("Administracin")
Me.cboCarrera.Items.Add("Computacin e Informtica")
Me.cboCarrera.Items.Add("Contabilidad")
Me.cboTurno.Items.Add("Diurno")
Me.cboTurno.Items.Add("Nocturno")
Call AbrirCarrera()
Call Limpiar()
Call Bloquear(True)
Call LlenarListas()

btnNuevo(Evento Click)

Call Bloquear(False)
Limpiar()
rsCarrera.AddNew()

btnSalir (Evento Click)

Me.Close()

btnGrabar (Evento Click)

With cpCarrera
.Item(0).Value = CStr(Me.txtCodigo.Text)
.Item(1).Value = CStr(Me.txtNombre.Text)
.Item(2).Value = CStr(Me.cboCarrera.Text)
.Item(3).Value = CStr(Me.cboTurno.Text)
End With
rsCarrera.Update()
Bloquear(True)
Call LlenarListas()

Joel Martin Chuco Marrufo


34
Visual Basic .Net 2003

frmCarrera (Evento Closing)

Call CerrarCarrera()

Formulario frmPagos

1. Paso N 01: Diseo del Formulario.

Joel Martin Chuco Marrufo


35
Visual Basic .Net 2003

2. Paso N 02: Asignacin de nombres a los controles.

Control Name

TextBox1 txtCurCar
TextBox2 txtCurRep
TextBox3 txtCurConv
ComboBox1 cboCodigo
Label7 lblTotal
ListBox1 lstCodigo
ListBox2 lstCurCar
ListBox3 lstCurRep
ListBox4 lstCurConv
ListBox5 lstTotal
Button1 btnNuevo
Button2 btnGrabar
Button3 btnSalir

3. Paso N 03: Codificacin.

Procedimiento Limpiar

Sub Limpiar()
Me.txtCurCar.Text = ""
Me.txtCurConv.Text = ""
Me.txtCurRep.Text = ""
Me.cboCodigo.Text = ""
Me.lblTotal.Text = ""
Me.cboCodigo.Focus()
End Sub

Procedimiento Bloquear

Sub Bloquear(ByVal Bloqueo As Boolean)


Me.txtCurCar.ReadOnly = Bloqueo
Me.txtCurConv.ReadOnly = Bloqueo
Me.txtCurRep.ReadOnly = Bloqueo
Me.cboCodigo.Enabled = Not Bloqueo
Me.btnGrabar.Enabled = Not Bloqueo
Me.btnNuevo.Enabled = Bloqueo
End Sub

Procedimiento LlenarCodigos

Sub LlenarCodigos()
rsCarrera.MoveFirst()
While Not rsCarrera.EOF
Me.cboCodigo.Items.Add(CStr(cpCarrera.Item(0).Value))
rsCarrera.MoveNext()
End While
End Sub

Joel Martin Chuco Marrufo


36
Visual Basic .Net 2003

Procedimiento LlenarListas

Sub LlenarListas()
Me.lstCodigo.Items.Clear()
Me.lstCurCar.Items.Clear()
Me.lstCurConv.Items.Clear()
Me.lstCurRep.Items.Clear()
Me.lstTotal.Items.Clear()
rsPagos.MoveFirst()
While Not rsPagos.EOF
With cpPagos
Me.lstCodigo.Items.Add(CStr(.Item(0).Value))
Me.lstCurCar.Items.Add(CStr(.Item(1).Value))
Me.lstCurRep.Items.Add(CStr(.Item(2).Value))
Me.lstCurConv.Items.Add(CStr(.Item(3).Value))
Me.lstTotal.Items.Add(CStr(.Item(4).Value))
End With
rsPagos.MoveNext()
End While
End Sub

frmPagos(Evento Load)

Call AbrirPagos()
Call AbrirCarrera()
Call Limpiar()
Call Bloquear(True)
Call LlenarCodigos()
Call LlenarListas()

btnNuevo(Evento Click)

Call Bloquear(False)
Call Limpiar()
rsPagos.AddNew()

btnGrabar (Evento Click)

Dim Cargo, Repitencia, Convalidacion, Pago As Single


Cargo = Val(Me.txtCurCar.Text) * 21
Repitencia = Val(Me.txtCurRep.Text) * 9
Convalidacion = Val(Me.txtCurConv.Text) * 25
Pago = Cargo + Repitencia + Convalidacion
Me.lblTotal.Text = CStr(Pago)
With cpPagos
.Item(0).Value = CStr(Me.cboCodigo.Text)
.Item(1).Value = CStr(Cargo)
.Item(2).Value = CStr(Repitencia)
.Item(3).Value = CStr(Convalidacion)
.Item(4).Value = CStr(Pago)
End With
rsPagos.Update()
Call Bloquear(True)
Call LlenarListas()

Joel Martin Chuco Marrufo


37
Visual Basic .Net 2003

btnSalir (Evento Click)

Me.Close()

frmPagos (Evento Closing)

Call CerrarPagos()
Call CerrarCarrera()

Formulario frmMatricula

1. Paso N 01: Diseo del Formulario.

Joel Martin Chuco Marrufo


38
Visual Basic .Net 2003

2. Paso N 02: Asignacin de nombres a los controles.

Control Name

TextBox1 txtApellido
ComboBox1 cboCodigo
ComboBox2 cboCondicion
Label7 lblRecargo
Label8 lblMatricula
ListBox1 lstCodigo
ListBox2 lstApellido
ListBox3 lstCondicion
ListBox4 lstRecargo
ListBox5 lstMatricula
Button1 btnNuevo
Button2 btnGrabar
Button3 btnSalir
Button4 btnRecibo

3. Paso N 03: Codificacin.

Procedimiento Limpiar

Sub Limpiar()
Me.txtApellido.Text = ""
Me.cboCodigo.Text = ""
Me.cboCondicion.Text = ""
Me.lblMatricula.Text = ""
Me.lblRecargo.Text = ""
Me.cboCodigo.Focus()
End Sub

Procedimiento Bloquear

Sub Bloquear(ByVal Bloqueo As Boolean)


Me.txtApellido.ReadOnly = Bloqueo
Me.cboCodigo.Enabled = Not Bloqueo
Me.cboCondicion.Enabled = Not Bloqueo
Me.btnGrabar.Enabled = Not Bloqueo
Me.btnNuevo.Enabled = Bloqueo
End Sub

Procedimiento LlenarCodigos

Sub LlenarCodigos()
rsCarrera.MoveFirst()
While Not rsCarrera.EOF
Me.cboCodigo.Items.Add(CStr(cpCarrera.Item(0).Value))
rsCarrera.MoveNext()
End While
End Sub

Joel Martin Chuco Marrufo


39
Visual Basic .Net 2003

Procedimiento LlenarListas

Sub LlenarListas()
Me.lstApellido.Items.Clear()
Me.lstCodigo.Items.Clear()
Me.lstCondicion.Items.Clear()
Me.lstMatricula.Items.Clear()
Me.lstRecargo.Items.Clear()
rsRecibo.MoveFirst()
While Not rsRecibo.EOF
With cpRecibo
Me.lstCodigo.Items.Add(.Item(0).Value)
Me.lstApellido.Items.Add(.Item(1).Value)
Me.lstCondicion.Items.Add(.Item(2).Value)
Me.lstRecargo.Items.Add(.Item(3).Value)
Me.lstMatricula.Items.Add(.Item(4).Value)
End With
rsRecibo.MoveNext()
End While
End Sub

frmMatricula(Evento Load)

Call AbrirCarrera()
Call AbrirRecibo()
Call LlenarCodigos()
Me.cboCondicion.Items.Add("Extemporneo")
Me.cboCondicion.Items.Add("Regular")
Call Limpiar()
Call Bloquear(True)
Call LlenarListas()

btnNuevo(Evento Click)

rsRecibo.AddNew()
Call Limpiar()
Call Bloquear(False)

btnRecibo(Evento Click)

Dim Recibo As New frmRecibo()


Recibo.lblCodigo.Text = Me.cboCodigo.Text
Recibo.lblConcepto.Text = "Ratificacin de Matricula"
Recibo.lblCondicion.Text = Me.lblRecargo.Text
Recibo.lblMatricula.Text = Me.lblMatricula.Text
Recibo.lblRecibi.Text = Me.txtApellido.Text
Recibo.Show()

Joel Martin Chuco Marrufo


40
Visual Basic .Net 2003

btnGrabar (Evento Click)

Dim Recargo, Matricula As Single


Const Porcentaje As Single = 0.1
Matricula = 130
If Me.cboCondicion.Text = "Extemporneo" Then
Recargo = Matricula * Porcentaje
Else
Recargo = 0
End If
Matricula = Matricula + Recargo
With cpRecibo
.Item(0).Value = CStr(Me.cboCodigo.Text)
.Item(1).Value = CStr(Me.txtApellido.Text)
.Item(2).Value = CStr(Me.cboCondicion.Text)
.Item(3).Value = CStr(Recargo)
.Item(4).Value = CStr(Matricula)
End With
rsRecibo.Update()
Me.lblMatricula.Text = CStr(Matricula)
Me.lblRecargo.Text = CStr(Recargo)
Call LlenarListas()

btnSalir (Evento Click)

Me.Close()

frmMatricula (Evento Closing)

Call CerrarCarrera()
Call CerrarRecibo()

Joel Martin Chuco Marrufo


41
Visual Basic .Net 2003

Creacin de un Reporte con Crystal Report

1. Agregaremos un nuevo elemento a nuestro proyecto, as que daremos clic


derecho en nuestra solucin y luego escogeremos Agregar y luego Agregar
Nuevo Elemento.

2. Despus nos mostrara la siguiente ventana donde elegiremos Cristal Report y


en Nombre pondremos RepAlum.rpt y daremos clic en abrir.

Joel Martin Chuco Marrufo


42
Visual Basic .Net 2003

3. Una vez de escoger nuestro nuevo elemento nos aparecer un asistente de


creacin de Reportes, en este caso usaremos el asistente, escogeremos un
asistente estndar y luego daremos clic en aceptar.

Tambin podemos crear un informe en blanco para despus insertar los


campos a mostrar de la base de datos, o como tambin podemos modificar los
campos desde un informe ya hecho.

Si desean practicar esto lo de los informes lo pueden hacer con la


Aplicacion50, ya que este contiene una base de datos un poco mas grande que esta
y esta relacionada, por ejemplo, podran crear un reporte de postulantes segn la
carrera a que postula, por aulas, en fin, all tienen para practicar.

Joel Martin Chuco Marrufo


43
Visual Basic .Net 2003

4. despus nos aparecer la siguiente ventana en donde tendremos que ubicar


nuestra base de datos, para ello daremos clic en OLE DB (ADO), mejor dicho en
la cruz, para poder abrir la carpeta.

Joel Martin Chuco Marrufo


44
Visual Basic .Net 2003

5. Luego nos aparecer una ventana donde elegiremos el proveedor de nuestra


base de datos, en este caso nuestro proveedor ser Microsoft Jet 4.0 OLE DB
Provider, ya que usamos una base de datos de Access y luego daremos clic en
siguiente. Ver la siguiente imagen.

Joel Martin Chuco Marrufo


45
Visual Basic .Net 2003

6. En donde dice Nombre de base de datos, daremos clic en el botn de tres


puntos para ubicar nuestra base de datos, recuerda que nuestra base de datos
siempre se va a ubicar en la carpeta Bin de nuestro proyecto.

Una vez picada nuestra base de datos, daremos clic en finalizar.

Joel Martin Chuco Marrufo


46
Visual Basic .Net 2003

7. Una vez creada nuestra conexin con la base de datos, pasaremos a seleccionar
la tabla de donde queramos crear nuestra consulta, si en caso queremos crear
un reporte que contenga datos de ms de una tabla. Deberemos de seleccionar
las tablas de donde provienen los datos, en este caso solo seleccionaremos la
tabla tbRecibo, ya que estamos creando un reporte donde nos va a mostrar por
grupos a todos los alumnos segn su matricula, ya sea extempornea o regular.

Una vez seleccionada la tabla daremos clic en siguiente.

Joel Martin Chuco Marrufo


47
Visual Basic .Net 2003

8. Aqu seleccionaremos los campos que queramos mostrar en nuestro reporte, en


caso de que tuviramos ms de una tabla, podremos seleccionar los campos de
todas las tablas que hayamos seleccionado con anticipacin.

Luego de agregar los campos a mostrar en el reporte, daremos clic en


siguiente.

Joel Martin Chuco Marrufo


48
Visual Basic .Net 2003

9. Esta es una de las ventanas mas importantes para nuestra creacin de nuestro
reporte, ya que aqu indicamos mediante que grupo ser el reporte, por ejemplo
en nuestro caso, estamos creando un reporte que nos muestre a los
matriculados segn la condicin de su matricula, ya sea extempornea o
Regular, as que para que lo agrupe en esos dos tipos agregaremos
tbRecibo.condicion desde los campos disponible en el rbol de Campos del
Informe, para que este se agrupe segn su condicin de matricula, si en caso
queremos que se agrupen por apellidos, agregaremos tbRecibo.apellido, o si
queremos que se agrupen por el monto de recargo, seleccionaremos
tbRecibo.recargo, y as sucesivamente, segn lo que nosotros queramos que se
muestre nuestro informe.

Despus de seleccionar como vas a ser agrupado los datos, daremos clic en
siguiente.

Joel Martin Chuco Marrufo


49
Visual Basic .Net 2003

10. Aqui escogeremos como va a ser ordenado el grupo y que operacin queramos
que haga, por ejemplo para este reporte le indicamos que haga una suma de
todo el campo recargo de nuestra tabla, aunque mas lgico seria que haga una
suma de todo el campo matricula de la tabla, segn su condicin, eso se los
dejo de tarea.

Luego daremos clic, despus de haber elegido o no la operacin deseada.

Joel Martin Chuco Marrufo


50
Visual Basic .Net 2003

11. Bueno ahora entramos a todo lo que es el diseo de nuestro reporte como lo
ven. Ponerle un titulo a nuestro reporte, a los grupos, etc.

Una vez de haber alterado algunos textos de nuestro reporte daremos clic en
siguiente.

Joel Martin Chuco Marrufo


51
Visual Basic .Net 2003

12. Esta ventana nos mostrar los grupos que habr en el reporte, as que no
modificaremos nada ac, y le daremos clic en siguiente.

Joel Martin Chuco Marrufo


52
Visual Basic .Net 2003

13. Aqu seleccionaremos el estilo de nuestro reporte, en este caso escogeremos la


ultima opcin que es el Cuadro Marrn/Verde azulado, y pondremos de titulo del
reporte informe de Matriculas, y eso es todo en cuanto a la creacin de nuestro
reporte.

Una vez de dar en clic en finalizar visualizaremos el diseo de nuestro reporte, en


donde podemos cambiar algunas cosas, como las etiquetas, imagen, etc.

Joel Martin Chuco Marrufo


53
Visual Basic .Net 2003

Control CrystalReportView

Este control nos permite visualizar el reporte que hemos creado en nuestro
proyecto con el Crystal Report, para indicar a este control el reporte que vamos a
ver, tendremos que especificar el reporte a mostrar en la propiedad ReportSource.

Para ubica nuestro reporte creado, nos ubicaremos en la propiedad


ReportSource de nuestro control CrystalReportView, y le daremos clic en Examinar,
una vez ubicado nuestro reporte daremos clic en aceptar. Por lo tanto ustedes no lo
podrn visualizar este reporte, ya que solo se conectara en tiempo de ejecucin.

Para mostrar nuestro reporte, crearemos un nuevo formulario, y le


insertaremos un control CrystalReportView.

Joel Martin Chuco Marrufo


54
Visual Basic .Net 2003

Formulario frmReporte

1. Paso N 01: Diseo del Formulario.

2. Paso N 02: Asignacin de nombres a los controles.

Control Name

CrystalReportViewer1 ReportView

No se olviden de ubicar su reporte en la propiedad ReportSource del Control


CrystalReportView, y es preferible activar los 4 lados de la propiedad Anchor de
este mismo control, para que as a la hora de maximizar o minimizar el formulario
tambin cambie el tamao el control.

Joel Martin Chuco Marrufo


55
Visual Basic .Net 2003

Formulario frmReportView

Este reporte nos mostrara los nombres, codigos, carrera de los alumnos
agrupado por turnos,

3. Paso N 01: Diseo del Formulario.

4. Paso N 02: Asignacin de nombres a los controles.

Control Name

CrystalReportViewer1 CrystalReportViewer1

Joel Martin Chuco Marrufo


56
Visual Basic .Net 2003

Bueno seores, con esto acabo con la cuarta entrega, he tocado algunas cosas
en general, como son consultas, reportes en Crystal Report, me hubiera
encantado hacer mas programas con estos tipos de ejemplo, pero estoy con
trabajo que hacer, as que espero que les sea de utilizada, para la prxima
entrega si hago un pequeo sistema con base de datos SQL, consultas y si me
alcanza tiempo tambin crearemos reportes.

Me gustara que tengan algo en claro, mi correo esta solo para consultas sobre
el manual u otra cosilla con respecto a la programacin en visual Basic, no para
pedir que les haga un sistema que a ustedes se les asigne, yo soy como
ustedes, solo hago sistemas para empresas que me pagan, y si hago un sistema
o programa en general, lo publico en una pagina Web para su descarga gratuita.

Espero que les sea de bastante utilidad esta entrega, ya saben que para
cualquier cosa esta mi correo jmchm19@hotmail.com que les responder lo mas
rpido posible, bueno ya me despido, aqu en Per estamos acabando el verano, as
que tengo unos cuantos das para ir a la playa, bye y cudense.

Donaciones a la Cuenta de Ahorros del Banco Interbank del Per

Cuenta en Soles:

067-3008573552

Cuenta en Dlares:

067-3008573560

www.interbank.com.pe

Lima, 07 de Marzo de 2006

Joel Martin Chuco Marrufo


57

Você também pode gostar