InicioHazlo Tu MismoVisual Basic 6.0 - Exportar DataGrid a Excel

Visual Basic 6.0 - Exportar DataGrid a Excel

Hazlo Tu Mismo4/23/2014
Exportar contenido de un DataGrid a un archivo de Excel Como estan, este post como muchos otros que cuelgo estan echos con la finalidad de compartir informacion sobre la programacion en Visual Basic 6.0. En esta oportunidad les paso el codigo de como exportar el contenido de un DataGrid (previamente cargado con un recordset) a un archivo de excel paso a paso. Paso 1: Crear una base de datos de prueba (en este caso utilizaremos access) con una tabla en este caso yo llamare a mi base de datos "PRUEBA" y a mi tabla "TABARTICULOS". La tabla podra tener cuantos campos quieran Nota: La coneccion a la base de datos no es el tema principal realmente el tipo de coneccion no influye en lo que se esta tratando en este post pero si quieren aprender pasen por este post.(reparando enlace) Paso 2: Abrir un nuevo proyecto de Visual Basic 6.0. Paso 3: Agregar las referencias de ado para el proyecto, Menu ProyectoReferencias y en el cuadro de dialogo ubicar y seleccionar "Microsoft ActiveX Data Objects 2.0 Library" (en el caso de conecciones sencillas es el mas recomendable) y ubicar y seleccionar con un check "Microsoft Excel 11.0 Object Library" para poder exportar. Paso 4: Agregar los componentes no predeterminados nesesarios desde la biblioteca de componentes Menu ProyectoComponentes y en el cuadro de dialogo ubicar y seleccionar con un check "Microsoft DataGrid Control 6.0 (SP6) (OLEDB)". Paso 5: Agegar un DataGrid al Formulario con dos CommandButton Nota: al DataGrid lo llamare dgExportar, a los CommandButton cmdCargar y cmdExportar respectivamente Paso 6: Agregar un Modulo .bas al proyecto Ahora el codigo: Esto en el modulo (es la manera de conectar mediante DSN) 'VARIABLES DE CONECCION Public coneccion As New Connection Public rstFacturas As New Recordset 'LA CONECCION Public Sub Conneccion() Set Module1.coneccion = New Connection Module1.coneccion.CursorLocation = adUseClient End Sub 'LA FUNCION QUE CARGA LA TABLA EN EL DATAGRID Public Sub Fun_rstFacturas(Grid As DataGrid) Set rstFacturas = New Recordset rstFacturas.Open "select * from TABARTICULOS", coneccion, adOpenStatic, adLockOptimistic Set Grid.DataSource = rstFacturas End Sub Para cargar la tabla en el DataGrid: Private Sub cmdCargar_Click() Call Conneccion coneccion.Open "DSN=PRUEBA;database=PRUEBA" Call Fun_rstFacturas(Me.dgExportar) End Sub 'Ahora para exportar Private Sub cmdExportar_Click() On Error GoTo ErrorExcel Dim objExcel As Excel.Application Dim HNom As Integer 'Horizontal Dim VNom As Integer 'Vertical Dim Hdatos As Integer 'Horizontal Dim Vdatos As Integer 'Vertical Dim cuentaNombres As Integer Dim cuentadatos As Integer Dim i As Integer Dim n As Integer Dim j As Integer If rstFacturas.RecordCount <> 0 Then 'Crear un objeto del tipo excel.application Set objExcel = New Excel.Application objExcel.Visible = True objExcel.SheetsInNewWorkbook = 1 objExcel.Workbooks.Add 'PONER UN TITULO objExcel.ActiveSheet.Cells(1, 1) = "EJEMPLO DE EXPORTAR A EXCEL" With objExcel.ActiveSheet.Cells(1, 1).Font .Color = vbBlack .Size = 9 .Bold = True End With 'AHORA UN SUBTITULO objExcel.ActiveSheet.Cells(3, 1) = "CONSULTA DE ARTICULOS" With objExcel.ActiveSheet.Cells(3, 1).Font .Color = vbBlack .Size = 9 .Bold = True End With 'UTILIZAMOS LAS VARIABLES PARA LA UBICACION DE NUESTROS TEXTOS HNom = 1 VNom = 7 Vdatos = 8 Hdatos = 1 cuentaNombres = rstFacturas.Fields.Count cuentadatos = rstFacturas.RecordCount 'AGREGAMOS LOS REGISTROS (RECUERDEN QUE NO IMPORTA CUANTAS COLUMNAS O REGISTROS TENGAMOS EL BUCLE_ 'FUNCIONA SEGUN EL NUMERO DE CABECERAS Y REGISTROS For i = 0 To (cuentaNombres - 1) objExcel.ActiveSheet.Cells(VNom, HNom) = Me.dgExportar.Columns(i).Caption 'rstFacturas.Fields(i).Name objExcel.ActiveSheet.Range(objExcel.ActiveSheet.Cells(VNom, HNom), objExcel.ActiveSheet.Cells(VNom, HNom)).HorizontalAlignment = xlHAlignCenterAcrossSelection With objExcel.ActiveSheet.Cells(VNom, HNom).Font .Size = 9 .Color = vbRed .Bold = True End With rstFacturas.MoveFirst For n = 1 To rstFacturas.RecordCount objExcel.ActiveSheet.Cells(Vdatos, Hdatos) = rstFacturas.Fields(i).Value objExcel.ActiveSheet.Cells(Vdatos, Hdatos).Font.Size = 8 Vdatos = Vdatos + 1 rstFacturas.MoveNext Next HNom = HNom + 1 Hdatos = Hdatos + 1 Vdatos = 8 rstFacturas.MoveFirst Next i 'AHORA LE ASIGNAMOS UN TAMAÑO A CADA COLUMNA SEGUN NESECITEMOS objExcel.Columns( "B" ).ColumnWidth = 19.43 objExcel.Columns( "C" ).ColumnWidth = 19.43 objExcel.Columns( "D" ).ColumnWidth = 16.86 objExcel.Columns( "E" ).ColumnWidth = 10.83 End If Exit Sub ErrorExcel: MsgBox Err.Description End Sub Cabe mencionar que este ejemplo puede ser utilizado cuando no dispongamos de Crystal Reports o tengamos algun problema al imprimir por esta misma via.
Datos archivados del Taringa! original
15puntos
3,899visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

L
LMNAJP🇦🇷
Usuario
Puntos0
Posts5
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.