Anda di halaman 1dari 4

PRÁCTICA No.

12
1). Crear una base de datos “DataBase2.accbd” en una ruta conocida y proceder a conectarlo con VB.

2). Crear un formulario como éste, considerando conexión con Access, botones de navegación, botones de
mantenimiento de BD, un botón de conexión con Excel y un visor de datos el control DataGridView. Los botones todos
tiene nombre interno que inicia con “btn…”, fijarse en el programa siguiente. Para conectar el control DataGridView
debe seguir de esta manera: como en la figura hallamos el control en el grupo Datos, lo arrastramos al formulario en
el tamaño que se observa, luego para conectar con la base de datos se debe hacer click en
la punta de flecha de la esquina superior derecha del control y tenemos este menú,
entonces hacer click en la opción “Elegir origen de datos” (en la punta de que se muestra)
, se abrirá

Un menú de tres opciones del cual se selecciona la


Opción “ClientesBindingSource” y listo……
3). Agregar al Proyecto una nueva Clase, cuyo nombre es “ExportaExcel.vb” y escribiremos la siguiente codificación:
Imports Microsoft.Office.Interop
Public Class ExportaExcel
Public Sub exportarexcel(ByVal tabla As DataTable)
Dim fila As DataRow
Dim posicion As Integer = 3
Dim MExcel As New Excel.Application
Dim objlibroexcel As Excel.Workbook = MExcel.Workbooks.Add
Dim objhojaexcel As Excel.Worksheet = objlibroexcel.Worksheets(1)
With objhojaexcel
.Visible = Excel.XlSheetVisibility.xlSheetVisible
.Activate()
.Name = "Exportacion"
.Range("A1").Value = "Datos de la agenda"
.Range("A1").Font.Size = 28
.Range("A1").Font.Name = "Times New Roman"
.Range("A1").Font.Italic = True
.Range("A1").HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter
.Range("A1").RowHeight = 30
.Range("A1:F1").MergeCells = True
.Range("A2").Value = "ID"
.Range("A2").ColumnWidth = 5
.Range("B2").Value = "Nombre"
.Range("B2").ColumnWidth = 40
.Range("C2").Value = "Edad"
.Range("C2").ColumnWidth = 7
.Range("D2").Value = "Direccion"
.Range("D2").ColumnWidth = 50
.Range("A2:D2").HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter

End With

For Each fila In tabla.Rows


objhojaexcel.Range("A" & posicion).Value = fila.Item("id")
objhojaexcel.Range("B" & posicion).Value = fila.Item("nombre")
objhojaexcel.Range("C" & posicion).Value = fila.Item("edad")
objhojaexcel.Range("D" & posicion).Value = fila.Item("dirección")
posicion += 1
Next

MExcel.Visible = True
End Sub

End Class

=========================================================================================

LUEGO ESCRIBIR ESTE CODIGO en el FORM1:


Public Class Form1

Private Sub ClienteBindingNavigatorSaveItem_Click(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles ClientesBindingNavigatorSaveItem.Click
Me.Validate()
Me.ClientesBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.Database2DataSet)

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles MyBase.Load
'TODO: esta línea de código carga datos en la tabla 'Database2DataSet.cliente'
Puede moverla o quitarla según sea necesario.
Me.ClientesTableAdapter.Fill(Me.Database2DataSet.Clientes)
Me.GroupBox1.Enabled = False
Me.btnNuevo.Enabled = True
Me.btnGuardar.Enabled = False
Me.btnEditar.Enabled = False
Me.btnBuscar.Enabled = True
Me.btnEliminar.Enabled = False

End Sub

Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnNuevo.Click
Try
Me.GroupBox1.Enabled = True
Me.ClientesBindingSource.AddNew()
Me.IdTextBox.Focus()
Me.btnNuevo.Enabled = False
Me.btnGuardar.Enabled = True
Me.btnEditar.Enabled = False
Me.btnBuscar.Enabled = False
Me.btnEliminar.Enabled = False
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "error")
End Try
End Sub

Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnGuardar.Click
Try
Me.ClientesBindingSource.EndEdit()
Me.ClientesTableAdapter.Update(Me.Database2DataSet.Clientes)
MsgBox("fue guardado con exito")
Me.GroupBox1.Enabled = False
Me.btnNuevo.Enabled = True
Me.btnGuardar.Enabled = False
Me.btnEditar.Enabled = False
Me.btnBuscar.Enabled = True
Me.btnEliminar.Enabled = False
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "error")
End Try

End Sub

Private Sub btnEditar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnEditar.Click
Me.ClientesBindingSource.EndEdit()
Me.ClientesTableAdapter.Update(Me.Database2DataSet.Clientes)
MsgBox("registro modificado")
Me.GroupBox1.Enabled = False
Me.btnNuevo.Enabled = True
Me.btnGuardar.Enabled = False
Me.btnEditar.Enabled = False
Me.btnBuscar.Enabled = True
Me.btnEliminar.Enabled = False

End Sub

Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnBuscar.Click
Dim cod_Clien As String = InputBox("ingrese el codigo de cliente", "Busqueda")
Me.GroupBox1.Enabled = True
Me.btnNuevo.Enabled = True
Me.btnGuardar.Enabled = False
Me.btnEditar.Enabled = True
Me.btnBuscar.Enabled = True
Me.btnEliminar.Enabled = True
If cod_Clien <> "" Then
Dim pos As Integer = 0
pos = Me.ClientesBindingSource.Find("id", cod_Clien)
If pos = -1 Then
MsgBox("no existe el cliente No." & cod_Clien)
Else
Me.ClientesBindingSource.Position = pos
End If
End If

End Sub

Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnEliminar.Click
Me.GroupBox1.Enabled = False
Me.btnNuevo.Enabled = True
Me.btnGuardar.Enabled = False
Me.btnEditar.Enabled = False
Me.btnBuscar.Enabled = True
Me.btnEliminar.Enabled = True
Try
Me.ClientesBindingSource.RemoveCurrent()
MsgBox("registro eliminado")
Catch ex As Exception
MsgBox(ex.Message)
End Try

End Sub

Private Sub btnInicio_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnInicio.Click
Me.ClientesBindingSource.MoveFirst()
End Sub

Private Sub btnSiguiente_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnSiguiente.Click
Me.ClientesBindingSource.MoveNext()
End Sub

Private Sub btnAnterior_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnAnterior.Click
Me.ClientesBindingSource.MovePrevious()
End Sub

Private Sub btnFinal_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnFinal.Click
Me.ClientesBindingSource.MoveLast()
End Sub

Private Sub btnExportaExcel_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnExportaExcel.Click
Dim objexcel As New ExportaExcel
objexcel.exportarexcel(Me.Database2DataSet.Clientes)

End Sub
End Class

NOTA IMPORTANTE: Para que funcione el programa después de haber concluido la digitación realizar
OBLIGATORIAMENTE estos tres pasos:

1.- en Proyecto - Agregar referencias - .Net - Microsoft.Office.Interop.Excel 11.00.00 - Aceptar.


2.- Proyecto - Agregar referencias - COM – Microsoft ActiveX Data Object 2.6 Library - Aceptar.
3.- Proyecto – Propiedades de... – Compilar - Opciones de compilación avanzadas – CPU de destino – x86 – Aceptar.

OJO: Microsoft.Office.Interop.Excel será 11.00.00 si el Office de la Pc es 2007


Microsoft.Office.Interop.Excel será 12.00.00 si el Office de la Pc es 2010
Microsoft.Office.Interop.Excel será 14.00.00 si el Office de la Pc es 2013

Anda mungkin juga menyukai