Sei sulla pagina 1di 10

UNJBG / ITEL LIDER EN CAPACITACION INFORMATICA CURSO

Garantía del proceso enseñanza – aprendizaje con las últimas tecnologías, con
Programación
TCEI computadoras Pentium i7, impresoras, escáner, multimedia, redes, Internet, material
didáctico paso a paso, biblioteca y aula virtual con docentes del más alto nivel.
Orientada a
Objetos II

LABORATORIO N° 07
OBJETIVOS:
Crear formularios usando controles de conexión a la Base de Datos ActiveX (ADO) hacia el proveedor Access 2010.
Uso de los Objetos de Clases Connection y Command: OleDbConnection, OleDbCommand, OleDbDataAdapter, Uso del DataSet.

1.- Primero Crearemos la base de datos en Access.


Para el ejemplo crearemos la base de datos BD_ITEL la cual contendrá dos tablas: alumno y curso, las cuales debe
relacionarse con la tabla matricula.

El archivo de Base de datos guardarlo en D:\SiS_ITEL\BD_ITEL.accdb

2.- En VB .NET creamos un nuevo proyecto: Sis_Itel y lo guardaremos en la unidad D.

3.- Importaremos a Visual Studio la base de datos en ACCESS haciendo clic derecho al proyecto Sis_itel y escoger Agregar
- Elemento Existente (Ctrl+D).
Localice el archivo de la BD y dé clic en Agregar.
Cuando adicionemos el archivo a nuestro proyecto, VS nos desplegara un asistente para adicionar un Data Set
Tipado. Escogemos Cancelar para que no agregue este Data Set.

Nota.- Existe un problema con los driver de Access en Windows de 64 así que si son de 64 puede ocurrir un error diciéndole que no se
encuentra el controlador de Access.Oledb.12.
Para que nuestra solución funcione y podamos probar el ejemplo tenemos que cambiar la arquitectura de nuestra aplicación –
CPU de destino: de AnyPC a x64 si queremos que funcione en todas las pcx64, esto solo para Windows de 64 bits

4.- En el Form1 Insertamos un botón btnProbar para probar la


conexión a la base de datos. También inserte un
DataGridView, luego generamos el evento Click del botón.

Lo primero que hay que hacer es importar dos espacios de


nombres, luego codificar el evento click del botón. El código
debe quedar así:

P-4 Pág. 1 / 10 Docente: Bach. Jony Espinoza


UNJBG / ITEL LIDER EN CAPACITACION INFORMATICA CURSO
Garantía del proceso enseñanza – aprendizaje con las últimas tecnologías, con
Programación
TCEI computadoras Pentium i7, impresoras, escáner, multimedia, redes, Internet, material
didáctico paso a paso, biblioteca y aula virtual con docentes del más alto nivel.
Orientada a
Objetos II

Pruebe con F5 y verifique si aparecen los datos de alumno en la


Grid

Si la grid muestra los datos de la tabla alumno, Quiere decir que


vas por buen camino. Sigue adelante, lo peor está por venir.

CREACION DE FORMULARIO DE Mantenimiento de Alumnos


Agregue un nuevo formulario a su proyecto y guárdelo con el nombre de FormAlumno.vb
Proceda a agregar los siguientes objetos según se observa a continuación:

Esquema general de la estructura desconectada de


datos

Agregando los botones del ToolStrip “Barra de Herramientas” para actualización y Desplazamiento
 Agregar un componente ToolStrip
 Luego dé clic derecho sobre él y seleccione Editar Elementos…
 Nos visualizará la Ventana en la que deberás agregar los elementos “miembros del ToolStrip”, haciendo clic en el
botón Agregar cuantas veces sea necesarios según la imagen.

P-4 Pág. 2 / 10 Docente: Bach. Jony Espinoza


UNJBG / ITEL LIDER EN CAPACITACION INFORMATICA CURSO
Garantía del proceso enseñanza – aprendizaje con las últimas tecnologías, con
Programación
TCEI computadoras Pentium i7, impresoras, escáner, multimedia, redes, Internet, material
didáctico paso a paso, biblioteca y aula virtual con docentes del más alto nivel.
Orientada a
Objetos II

Luego procede a establecer las propiedades Name, ToolTiptext e Image para cada miembro del ToolStrip.

Ahora procederemos a establecer las propiedades de los demás objetos


Objeto Propiedad Valor Asignado
Name FormAlumno
Form1 BackgroundImage Haga clic en … y Seleccione la imagen que Ud. Desee
Startposition CenterScreen
Label1, label2.... Text Agregar los textos respectivos en cada Etiqueta
TextBox1 Name txtCodigo
TextBox2 Name txtNombres
TextBox3 Name txtApellidos
TextBox4 Name txtGrado
TextBox5 Name txtSeccion
TextBox6 Name txtFoto
Name btnFoto
Button1
Text Agregar Foto…
Name PictureBox1
PictureBox1
SizeMode StretchImage
 Establecer el tamaño adecuado a cada control u objeto que está dentro del formulario.
 A todas las etiquetas establecer la propiedad Autosize = True

Luego proceda a ingresar el código necesario a los siguientes objetos:


Imports System.Data
Imports System.Data.OleDb

Public Class FormAlumno


Dim daAlumno As OleDbDataAdapter
Dim objDataSet As New DataSet
Dim objDataRow As DataRow
Dim Posicion As Integer
Dim flag As Integer
Dim NomFoto As String

P-4 Pág. 3 / 10 Docente: Bach. Jony Espinoza


UNJBG / ITEL LIDER EN CAPACITACION INFORMATICA CURSO
Garantía del proceso enseñanza – aprendizaje con las últimas tecnologías, con
Programación
TCEI computadoras Pentium i7, impresoras, escáner, multimedia, redes, Internet, material
didáctico paso a paso, biblioteca y aula virtual con docentes del más alto nivel.
Orientada a
Objetos II

Dim x As Integer
Dim Conexion As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=C:\recientes\systel\BD_ITEL.accdb; User Id=admin;Password=;")

Private Sub FormAlumno_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


Conexion.Open()
daAlumno = New OleDbDataAdapter("select * from Alumno", conexion)
daAlumno.Fill(objDataSet, "Alumno") 'rellena el DataSet
Conexion.Close()
dgvAlumnos.ReadOnly = True
CargarDatos()
HabilitarControles(False)
HabilitarBotones(True)
daAlumno.Fill(objDataSet)
dgvAlumnos.DataSource = objDataSet.Tables(0)
End Sub

Private Sub CargarDatos()


Try
objDataRow = objDataSet.Tables("Alumno").Rows(Posicion)
txtCodigo.Text = objDataRow(0)
txtNombres.Text = objDataRow(1)
txtApellidos.Text = objDataRow(2)
txtGrado.Text = objDataRow(3)
txtSeccion.Text = objDataRow(4)
txtFoto.Text = rutaimagen() & objDataRow(5)
picFoto.Image = Image.FromFile(txtFoto.Text)
tslRegistro.Text = "Registro: " & Posicion + 1 & " de " & objDataSet.Tables("Alumno").Rows.Count
EnlazaGrilla()
Catch exc As Exception
MessageBox.Show(exc.Message)
End Try
End Sub

Private Sub EnlazaGrilla()


Dim da As New OleDbDataAdapter("SELECT * FROM Alumno", Conexion)
Dim ds As New DataSet
da.Fill(ds)
dgvAlumnos.DataSource = ds.Tables(0)
End Sub

P-4 Pág. 4 / 10 Docente: Bach. Jony Espinoza


UNJBG / ITEL LIDER EN CAPACITACION INFORMATICA CURSO
Garantía del proceso enseñanza – aprendizaje con las últimas tecnologías, con
Programación
TCEI computadoras Pentium i7, impresoras, escáner, multimedia, redes, Internet, material
didáctico paso a paso, biblioteca y aula virtual con docentes del más alto nivel.
Orientada a
Objetos II

Private Sub HabilitarControles(ByVal est As Boolean)


Dim ctrl As Control
For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox Then ctrl.Enabled = est
Next
txtCodigo.ReadOnly = True
End Sub

Private Sub HabilitarBotones(ByVal est As Boolean)


Dim oitem As Windows.Forms.ToolStripItem
For Each oitem In ToolStrip1.Items
If TypeOf oitem Is ToolStripButton Then
oitem.Enabled = est
End If
Next
tsbGuardar.Enabled = Not est
tsbCancelar.Enabled = Not est
btnFoto.Visible = Not est
End Sub

Function verificavacios() As Boolean


Dim objetos As Object
For Each objetos In Me.Controls
If TypeOf objetos Is TextBox Then
If objetos.name <> "txtNombres" And objetos.name <> "txtApellidos" And objetos.TextLength = 0 Then
MsgBox("Debe ingresar: " & objetos.tag)
verificavacios = True
Exit Function
End If
End If
Next
End Function

Private Sub GeneraCodAlumno()


Dim codi As String
Dim cmd As New OleDbCommand("select max(codigo) From Alumno", Conexion)
Conexion.Open()
codi = cmd.ExecuteScalar
Conexion.Close()
Me.txtCodigo.Text = Val(codi) + 1
End Sub

Private Sub LimpiarControles()


LimpiarTextBox(Me)
picFoto.Image = Nothing
End Sub

Private Sub actualizafoto()


Dim mifoto As Bitmap
If objDataRow("foto").ToString = Nothing Then
picFoto.Image = Nothing
Else

P-4 Pág. 5 / 10 Docente: Bach. Jony Espinoza


UNJBG / ITEL LIDER EN CAPACITACION INFORMATICA CURSO
Garantía del proceso enseñanza – aprendizaje con las últimas tecnologías, con
Programación
TCEI computadoras Pentium i7, impresoras, escáner, multimedia, redes, Internet, material
didáctico paso a paso, biblioteca y aula virtual con docentes del más alto nivel.
Orientada a
Objetos II

mifoto = New Bitmap(Me.txtFoto.Text)


picFoto.Image = CType(mifoto, Image)
End If
End Sub

Private Sub Editar()


flag = 2
HabilitarControles(True)
HabilitarBotones(False)
txtCodigo.Focus()
End Sub

Private Sub Actualizar() 'Para actualizar el DataSet


objDataSet.Clear()
daAlumno.Fill(objDataSet, "Alumno")
End Sub

Private Sub Nuevo()


flag = 1
txtFoto.Text = Nothing
HabilitarControles(True)
HabilitarBotones(False)
LimpiarControles()
GeneraCodAlumno()
End Sub

Private Sub Cancelar()


Conexion.Open()
objDataSet.RejectChanges()
Conexion.Close()
HabilitarControles(False)
HabilitarBotones(True)
Desplazar(1)
End Sub

Private Sub ToolStrip1_ItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs)


Handles ToolStrip1.ItemClicked
Select Case e.ClickedItem.Name
Case "tsbNuevo" ' Botón Nuevo
Nuevo()
Case "tsbGuardar" ' Botón Guardar
Guardar()
Case "tsbEditar" ' Botón Editar
Editar()
Case "tsbCancelar" ' Botón Cancelar
Cancelar()
Case "tsbEliminar" ' Botón Desactivar Alumno no borrar de la tabla
Dim rpta As MsgBoxResult
rpta = MsgBox("Esta seguro que desea Retirar Al Alumno :" & _
Chr(13) & Chr(10) & txtCodigo.Text & " - " & txtNombres.Text & " " & _
txtApellidos.Text, MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Confirmación")
If rpta = vbYes Then MsgBox("retirado")

P-4 Pág. 6 / 10 Docente: Bach. Jony Espinoza


UNJBG / ITEL LIDER EN CAPACITACION INFORMATICA CURSO
Garantía del proceso enseñanza – aprendizaje con las últimas tecnologías, con
Programación
TCEI computadoras Pentium i7, impresoras, escáner, multimedia, redes, Internet, material
didáctico paso a paso, biblioteca y aula virtual con docentes del más alto nivel.
Orientada a
Objetos II

Case "tsbBuscar" ' Botón Buscar


Buscar()
Case "tsbImprimir" ' Botón Imprimir
Imprimir()
Case "tsbSalir" ' Botón Salir
Me.Close()
Case "tsbPrimero" ' Ir a al Primero
Desplazar(1)
Case "tsbAnterior" ' Ir al Anterior
Desplazar(2)
Case "tsbSiguiente" ' Ir al Siguiente
Desplazar(3)
Case "tsbUltimo" ' Ir al Último
Desplazar(4)
End Select
End Sub

Private Sub Desplazar(ByVal op As Integer)


Select Case op
Case 1
Posicion = 0
Call CargarDatos()
Case 2
If Posicion = 0 Then
MessageBox.Show("Primer Registro", "", 0, MessageBoxIcon.Information)
Else
Posicion -= 1
CargarDatos()
End If
Case 3
If Posicion = (objDataSet.Tables("alumno").Rows.Count - 1) Then
MessageBox.Show("Último Registro", "", 0, MessageBoxIcon.Information)
Else
Posicion += 1
CargarDatos()
End If
Case 4
Posicion = (objDataSet.Tables("alumno").Rows.Count - 1)
CargarDatos()
End Select
End Sub

Private Sub Guardar()


Dim insertados As String
Dim cmP As New OleDbCommand()
cmP.Connection = Conexion
If flag = 1 Then ' Nuevo
cmP.CommandType = CommandType.Text
cmP.CommandText = "INSERT into Alumno (codigo, nombres, apellidos, grado, seccion, foto) VALUES (@codigo,
@nombres, @apellidos, @grado, @seccion, @foto)"
insertados = " insertados: "
Else ' Editar

P-4 Pág. 7 / 10 Docente: Bach. Jony Espinoza


UNJBG / ITEL LIDER EN CAPACITACION INFORMATICA CURSO
Garantía del proceso enseñanza – aprendizaje con las últimas tecnologías, con
Programación
TCEI computadoras Pentium i7, impresoras, escáner, multimedia, redes, Internet, material
didáctico paso a paso, biblioteca y aula virtual con docentes del más alto nivel.
Orientada a
Objetos II

cmP.CommandType = CommandType.Text
cmP.CommandText = "UPDATE Alumno SET codigo=@codigo,nombres=@nombres,apellidos=@apellidos,
grado=@grado, seccion=@seccion,foto=@foto WHERE codigo=@codigo"
insertados = " modificados: "
End If
Try
cmP.Parameters.Add(New OleDbParameter("@codigo", SqlDbType.Int))
cmP.Parameters.Add(New OleDbParameter("@Nombres", SqlDbType.VarChar))
cmP.Parameters.Add(New OleDbParameter("@Apellidos", SqlDbType.VarChar))
cmP.Parameters.Add(New OleDbParameter("@grado", SqlDbType.VarChar))
cmP.Parameters.Add(New OleDbParameter("@seccion", SqlDbType.VarChar))
cmP.Parameters.Add(New OleDbParameter("@Foto", SqlDbType.VarChar))

cmP.Parameters("@codigo").Value = txtCodigo.Text
cmP.Parameters("@Nombres").Value = txtNombres.Text
cmP.Parameters("@Apellidos").Value = txtApellidos.Text
cmP.Parameters("@grado").Value = txtGrado.Text
cmP.Parameters("@seccion").Value = txtSeccion.Text
cmP.Parameters("@Foto").Value = NomFoto
Conexion.Open()
x = cmP.ExecuteNonQuery
MessageBox.Show("Alumnos :" & insertados & " " & x, "", 0, MessageBoxIcon.Information)
Catch ex As Exception
Me|ssageBox.Show("Falta - " & Chr(10) + Chr(13) & ex.Message, "ERROR") '
End Try
Actualizar()
Conexion.Close()
Me.HabilitarBotones(True)
Me.EnlazaGrilla()
End Sub

Private Sub btnFoto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFoto.Click


Dim MiFoto As Bitmap
Dim CurFileName As String = ""
Dim openfile As OpenFileDialog = New OpenFileDialog
openfile.Filter = "All Bitmapfiles|*.*"
Dim filter As String = openfile.Filter
openfile.Title = "Abrir un archivo bitmap"
If openfile.ShowDialog() = Windows.Forms.DialogResult.OK Then
CurFileName = RutaDeImagen(openfile.FileName)
NomFoto = CurFileName
MiFoto = New Bitmap(CurFileName)
picFoto.Image = CType(MiFoto, Image)
Else
Exit Sub
End If
End Sub

Private Sub Buscar()


Dim strDato As String
Dim fila As Integer
Dim dv As New DataView

P-4 Pág. 8 / 10 Docente: Bach. Jony Espinoza


UNJBG / ITEL LIDER EN CAPACITACION INFORMATICA CURSO
Garantía del proceso enseñanza – aprendizaje con las últimas tecnologías, con
Programación
TCEI computadoras Pentium i7, impresoras, escáner, multimedia, redes, Internet, material
didáctico paso a paso, biblioteca y aula virtual con docentes del más alto nivel.
Orientada a
Objetos II

Try
strDato = InputBox("Ingrese codigo del Alumno: ", "Buscar")
dv.Table = objDataSet.Tables("Alumno")
dv.Sort = "codigo"
fila = dv.Find(strDato)
If fila = -1 Then
MessageBox.Show("Codigo del Alumno no Existe", "Atencion")
Exit Sub
End If
Me.BindingContext(Me.objDataSet, "Alumno").Position = fila ' actualiza la grilla para que se vea el registro localizado
Posicion = fila
Call CargarDatos()
Catch ex As Exception
MessageBox.Show("Falta - " & ex.Message, "No Ingresó ningun Codigo") '
End Try
End Sub

Private Sub Imprimir()

End Sub

Public Sub LimpiarTextBox(ByVal ofrm As Form)


For Each oControl As Control In ofrm.Controls
If TypeOf oControl Is TextBox Then
oControl.Text = ""
End If
Next
End Sub

Public Function RutaDeImagen(ByVal Imagen As String) As String


Dim Letra, nRuta As String
Dim i, Pos As Integer
Letra = Trim(Imagen)
For i = Len(Letra) To 1 Step -1
If Mid(Letra, i, 1) = "\" Then
Pos = i
Exit For
End If
Next i
nRuta = Mid(Letra, Pos + 1, Len(Letra))
Return nRuta
End Function

Function rutaimagen()
Dim ruta As String
ruta = "D:\sis_itel\foto\" ' cambiar si la carpeta foto se cambia de unidad
Return ruta
End Function

TAREA 1. Debe Usted Agregar el código correspondiente para que el enfoque se traslade de un objeto a otro, cuando
presione Enter, en el orden que se vea en el formulario.

P-4 Pág. 9 / 10 Docente: Bach. Jony Espinoza


UNJBG / ITEL LIDER EN CAPACITACION INFORMATICA CURSO
Garantía del proceso enseñanza – aprendizaje con las últimas tecnologías, con
Programación
TCEI computadoras Pentium i7, impresoras, escáner, multimedia, redes, Internet, material
didáctico paso a paso, biblioteca y aula virtual con docentes del más alto nivel.
Orientada a
Objetos II

TAREA 2. formMantenimientoCurso Tablas: Cursos

TAREA 3. Agregar los formularios de la presente práctica a su FormPrincipal a una Opción de menú y presente su trabajo
al profesor.

TAREA 4. Codificar los formularios de Profesor, Notas y Empleado adaptado el código de la presente practica y presente
su trabajo al profesor. Considere primero, trabajar su base de datos en Access – Tablas: Profesor, Cursos, Notas
y Empleado.

P-4 Pág. 10 / 10 Docente: Bach. Jony Espinoza

Potrebbero piacerti anche