Exportar datos de Access a Excel mediante código VBA.
Es que tengo el siguiente código que funciona bien pero hay un problema. Es que quiero exportar 2 tablas de access pero en excel quiero que cree 2 hojas para exportar las 2 tablas por separadas, he intentando pero no lo he logrado de momento me exporta todo en una sola hoja.
Call BD_Principal
Set Rg = New ADODB.Recordset
Rg.Open "SELECT ID_REGISTRO,FECHA_ENVIO,USUARIO_CREADOR,ID_CLIENTE,ID_ORDEN_INTERACCION,TIPO_VENTA,TIPO_ALTA,PRODUCTO_CARACTERISTICA,OFERTA_ASOCIADA FROM TB_Principal ORDER BY FECHA_ENVIO ASC", miConexion, adOpenKeyset, adLockOptimistic, adCmdText
Call BD_Principal
Set Ra = New ADODB.Recordset
Ra.Open "SELECT ID_REGISTRO,FECHA_ENVIO,USUARIO_CREADOR,ID_CLIENTE,ID_ORDEN_INTERACCION,TIPO_VENTA,TIPO_ALTA,PRODUCTO_CARACTERISTICA,OFERTA_ASOCIADA,USUARIO_GESTOR FROM TB_Gestionando ORDER BY FECHA_ENVIO ASC", miConexion, adOpenKeyset, adLockOptimistic, adCmdText
NombreHoja = "Ventas en espera"
NombreHoja2 = "Ventas en gestión"
Set APIExcel = CreateObject("Excel.Application")
Set AddLibro = APIExcel.Workbooks.Add
APIExcel.Visible = False
Set AddHoja = AddLibro.Worksheets(1)
If Len(NombreHoja) > 0 Then AddHoja.Name = Left(NombreHoja, 30)
columnas = Rg.Fields.Count
For I = 0 To columnas - 1
APIExcel.Cells(1, I + 1) = Rg.Fields(I).Name
Next I
Rg.MoveFirst
AddHoja.Range("A2").CopyFromRecordset Rg
Set AddHoja1 = AddLibro.Worksheets(1)
If Len(NombreHoja2) > 0 Then AddHoja1.Name = Left(NombreHoja2, 30)
columnas = Ra.Fields.Count
For I = 0 To columnas - 1
APIExcel.Cells(1, I + 1) = Ra.Fields(I).Name
Next I
Ra.MoveFirst
AddHoja1.Range("A2").CopyFromRecordset Ra
With APIExcel.ActiveSheet.Cells
.Select
.EntireColumn("A:H").AutoFit
.Range("A1").Select
End With
Rg.Close
Set Rg = Nothing
Ra.Close
Set Ra = Nothing
miConexion.Close
Base_Datos = MsgBox("La expotación de ventas ha finalizado con éxito, desea abrir el contenido exportado?", vbOKCancel, "Exportar ventas")
If Base_Datos = vbOK Then
APIExcel.Visible = True
End If
1 Respuesta
Respuesta de Sveinbjorn El Rojo
2