Codigo para exportar datos de una hoja de excel a access en visual basic
pega este texto en modulo
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("x:\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
luego en tu formulario de datos tendras que tener un datagrid que te muestre los datos
eso lo haces conectado a un ado
se rellena solo
entonces usas un boton dentro del formulario
luego desde un boton que se llame imprimir
usa el siguiente codigo
If Adodc3.Recordset.EOF = True Then
Adodc3.Refresh
Else
Adodc3.Recordset.MoveFirst
Call exportar_Datagrid(DataGrid1, DataGrid1.ApproxCount)
End If
donde se conoce como adodc3 el objeto que esta conectado a la tabla de la base de datos y rellena el datagrid
entonces le pasas el conteo al formulario llamando al modulo con esta funcion que te pase
en el codigo del modulo hay un texto que dice x:\libro.xls
en esa ubicacion debes crear una planilla en blanco para actue de intermediaria entre el sistema y la exportacion
a esta planilla ponle atributos de solo lectura y lo dejas oculto en lo posible con atributos shr
asi no podra ser visto por el usuario y tendra que obligatoriamente guardar una copia de la exportacion en otro lugar asi mantienes la planilla limpia
saludos