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
Respuesta de Sveinbjorn El Rojo
2