Visual Basic - EXPORTAR DATOS DE VB6 A EXCEL

Life is soft - evento anual de software empresarial
   
Vista:

EXPORTAR DATOS DE VB6 A EXCEL

Publicado por Fabian (2 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:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo

EXPORTAR DATOS DE VB6 A EXCEL

Publicado por Andres Leonardo (1164 intervenciones) el 26/01/2018 19:58:04
Hola fabian ... aqui esta tu respuesta

1
2
3
4
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
 
'Entonces deberas hacer que el Grid se llene con los datos que necesitas y luego lo exportas con ese mismo codigo ,,...
'Como haciendo que la consulta tenga como filtro las fechas que necesitas....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

EXPORTAR DATOS DE VB6 A EXCEL

Publicado por Fabian (2 intervenciones) el 29/01/2018 00:20:18
Después de intentar varias veces encontré la solución colocando dos text box para filtrar fecha desde fecha hasta con un command que genera el filtro desde el adodc y mostrándolo en el datagrid.

Codigo en Command

1
2
3
4
5
6
7
8
Dim FECHA As String
Adodc1.RecordSource = "select * from factura where fecha between '" & Text3 & "' and '" & Text4 & "'"
Adodc1.Refresh
FECHA = Adodc1.RecordSource
Set DataGrid1.DataSource = Adodc1.Recordset
If Adodc1.Recordset.RecordCount = 0 Then
MsgBox ("no hay registro que coincida con su busqueda")
End If

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Andres Leonardo

EXPORTAR DATOS DE VB6 A EXCEL

Publicado por Andres Leonardo (1164 intervenciones) el 29/01/2018 14:43:24
Pues si .. eso fue lo que te dije ... que bueno que lo hayas solucionado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad