EXPORTAR DATOS DE VB6 A EXCEL
Publicado por Fabian (9 intervenciones) el 25/01/2018 03:12:33
Buenas noches, soy nuevo en este foro espero postear bien.
Tengo la siguiente inquietud y agradecería una ayuda de su parte al respecto.
Tengo una serie de datos en un datagrid1 los cuales se cargan por medio de un adodc1 enlazado a una base de datos Base1.mdb en Access. La tabla Facturas contiene 8 columnas de la cual la numero 7 es la fecha y necesito exportar los datos de ese datagrid a una hoja en Excel. Puedo exportar todo el datagrid con un codigo que dejo a continuación, el inconveniente es que cuando exporto los datos se exporta todo el datagrid y lo que necesito es exportar una parte no mas, no todo. Las posibilidades que se me ocurren para esto son 3 pero no doy como hacerlo con ninguna de las 3.
Probabilidad 1: Exportar filtrando por rango de fechas, ejemplo del 01/01/2018 al 15/01/2018, (no logro filtrar por mas de un dato)
Probabilidad 2: Exportar seleccionando rango de filas desde el datagrid (no logro seleccionar mas de una fila del datagrid).
Probabilidad 3: Exportar desde el adodc. (Se exporta toda la tabla y solo necesito unos datos no mas, es decir de selección múltiple)
Cualquiera de las 3 posibilidades me sirve o si hay alguna otra mas fácil, lo agradezco.
El código que tengo es el siguiente:
MODULO:
Y EN EL FORM PARA EXPORTAR EL SIGUIENTE EN UN COMMAND
Agradezco alguien que me colabore con esta inquietud, no he logrado encontrar respuestas en Google.
Tengo la siguiente inquietud y agradecería una ayuda de su parte al respecto.
Tengo una serie de datos en un datagrid1 los cuales se cargan por medio de un adodc1 enlazado a una base de datos Base1.mdb en Access. La tabla Facturas contiene 8 columnas de la cual la numero 7 es la fecha y necesito exportar los datos de ese datagrid a una hoja en Excel. Puedo exportar todo el datagrid con un codigo que dejo a continuación, el inconveniente es que cuando exporto los datos se exporta todo el datagrid y lo que necesito es exportar una parte no mas, no todo. Las posibilidades que se me ocurren para esto son 3 pero no doy como hacerlo con ninguna de las 3.
Probabilidad 1: Exportar filtrando por rango de fechas, ejemplo del 01/01/2018 al 15/01/2018, (no logro filtrar por mas de un dato)
Probabilidad 2: Exportar seleccionando rango de filas desde el datagrid (no logro seleccionar mas de una fila del datagrid).
Probabilidad 3: Exportar desde el adodc. (Se exporta toda la tabla y solo necesito unos datos no mas, es decir de selección múltiple)
Cualquiera de las 3 posibilidades me sirve o si hay alguna otra mas fácil, lo agradezco.
El código que tengo es el siguiente:
MODULO:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Dim Obj_Excel As Object
Dim Obj_Libro As Object
Dim Obj_Hoja As Object
Public Sub exportar_Datagrid(Datagrid As Datagrid, n_Filas As Long)
Dim i As Integer
Dim j As Integer
MousePointer = vbHourglass
If n_Filas = 0 Then
MsgBox "No hay datos para exportar a excel ": Exit Sub
Else
Set Obj_Excel = CreateObject("Excel.Application")
Set Obj_Libro = Obj_Excel.Workbooks.Open("c:\reg\libro.xls")
Set Obj_Hoja = Obj_Excel.ActiveSheet
iCol = 0
For i = 0 To Datagrid.Columns.Count - 1
If Datagrid.Columns(i).Visible Then
iCol = iCol + 1
Obj_Hoja.Cells(1, iCol) = Datagrid.Columns(i).Caption
For j = 0 To n_Filas - 1
Obj_Hoja.Cells(j + 2, iCol) = Datagrid.Columns(i).CellValue(Datagrid.GetBookmark(j))
Next
End If
Next
Obj_Excel.Visible = True
With Obj_Hoja
.Rows(1).Font.Bold = True
.Rows(1).Font.Color = vbRed
.Columns("A:Z").AutoFit
End With
End If
Set Obj_Hoja = Nothing
Set Obj_Libro = Nothing
Set Obj_Excel = Nothing
MousePointer = vbDefault
Exit Sub
End Sub
Y EN EL FORM PARA EXPORTAR EL SIGUIENTE EN UN COMMAND
1
2
3
4
5
6
If Adodc1.Recordset.EOF = True Then
Adodc1.Refresh
Else
Adodc1.Recordset.MoveFirst
Call exportar_Datagrid(DataGrid1, DataGrid1.ApproxCount)
End If
Agradezco alguien que me colabore con esta inquietud, no he logrado encontrar respuestas en Google.
Valora esta pregunta
0