Exportar datos de access

Estoy intentando exportar ciertos datos de archivo de access a excel, pero al momento de su ejecución me marca error de compilación "No se ha definido el tipo definido por el usuario" de favor me puedes apoyar, a continuación te transcribo el código (ojala y puedas, de favor, revisarlo para ver si esta correcto y que no se presente otro error), en líneas abajo te indico el error en negritas, de antemano gracias.
Sub ConectarAccess()
End Sub
Public Sub cmdConectarAccess()
Dim DBFullName As String
Dim Cnct As String, Src As String
Dim Conex As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim strDB, strSQL As String
Dim strTabla As String
Dim IngTablas As Long
Dim i As Long
strDB = ThisWorkbook.Path & "\" & "AdministraciónCarterabd1.mdb"
' Nombre de los archivos de access
' construyo la primera cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Plazo" & _
"FROM 4FormularioResumenMinistraciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
For Each Campo In rst.Fields
xls.ActiveSheet.Cells(3, 1) = Campo.NoControl
xls.ActiveSheet.Cells(3, 2) = Campo.CréditoNo
xls.ActiveSheet.Cells(3, 3) = Campo.Plazo
' construyo la segunda cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, FechaInicial" & _
"FROM 3DetalleMinistración ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Fields
xls.ActiveSheet.Cells(3, 1) = Campo.NoControl
xls.ActiveSheet.Cells(3, 2) = Campo.CréditoNo
xls.ActiveSheet.Cells(3, 4) = Campo.FechaInicial
' construyo la tercera cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Mes" & _
"FROM 4ResumenMinistraciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Fields
xls.ActiveSheet.Range("J3:J26") = Campo.ImporteMinistrado
' construyo la cuarta cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, FechaInicial" & _
"FROM 3FormularioDetalleMinistración ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Fields
xls.ActiveSheet.Cells(3, 1) = Campo.NoControl
xls.ActiveSheet.Cells(3, 2) = Campo.CréditoNo
' construyo la quinta cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Mes" & _
"FROM 5FormularioResumenAmortizaciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Fields
xls.ActiveSheet.Cells(3, 1) = Campo.NoControl
xls.ActiveSheet.Cells(3, 2) = Campo.CréditoNo
' construyo la sexta cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Mes" & _
"FROM 5ResumenAmortizaciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.ActiveSheet.Range("K3:K26") = Campo.ImportedelPago
' construyo la septima cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo" & _
"FROM 4FormularioDetalleAmortización ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Fields
xls.ActiveSheet.Cells(3, 1) = Campo.NoControl
xls.ActiveSheet.Cells(3, 2) = Campo.CréditoNo
' crear la conexión
Set Connection = New ADODB.Connection
Set recSet = New ADODB.Recordset
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source =" & strDB & ";"
End Sub
Sub ImportarAccess()
Dim ruta As String
Dim basededatos As String
' ruta
ruta = ThisWorkbook.Path
basededatos = " AdministraciónCarterabd1.mdb "
Dim Conex As ADODB.Connection
Conex.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & ruta & "\" & basededatos)
' abrir el libro Exportar a Excel
strLibro = CurrentProject.Path & "\TablaAmortización.xlsm"
xls.Workbooks.Open (strLibro)
' visible o no
xls.Visible = False ' o false
' activo la hoja de excel denominda "TablaAmortización"
xls.Worksheets("\TablaAmortización.xlsm").Activate
' consulta SQL
strSQL = "SELECT * FROM " & strTabla & ""
recSet.Open strSQL, Connection
' Copiar datos a la hoja
ActiveSheet.Cells(3, 1).CopyFromRecordset recSet
' Copiar rótulos
IngCampos = recSet.Fields.Count
For i = 0 To IngCampos - 1
ActiveSheet.Cells(1, i + 1).Value = recSet.Fields(i).Name
Next
End Sub
Sub DesconectarAccess()
' Desconectar
recSet.Close: Set recSet = Nothing
End Sub

1 Respuesta

Respuesta
1
Revisando el código he encontrado bastantes errores.
Supongo que este código vas a ponerlo dentro de un módulo, por lo que las siguientes variables las puedes definir para todo el módulo (delante del primer "sub...). Las variables son:
Global Connection As New ADODB. Connection
Global recSet As New ADODB. Connection ' (quitarlo de comConectarAccess)
Global xls As New Excel. Application
Dentro del procedimiento "Public Sub cmdConectarAccess()" te falta por definir las siguientes variables:
Dim Campo
Dim rst As Recordset
En el procedimiento "ImportarAccess()" no están definidas las siguientes variables:
Dim strLibro As String
Dim strTabla As String
Dim strSQL As String
Dim IngCampos As Integer
Dim i As Integer
Otras líneas que están dando muchos errores son las que pones "rst.Fields". Esa instrucción a solas no hace nada más que dar error.
Por último, el error que te está dando se produce porque tienes un bucle 'For Each Campo In rst. Fields' sin cerrar con una instrucción 'next'.
Entiendo que la variable 'campo' las quieres definir de tipo 'field', pero si lo haces no existen las propiedades "campo.NoControl", "campo.CréditoNo", etc... Supongo que querrás poner "rst!NoControl", "rstCréditoNo", etc...
Hola Experto nuevamente molestándote del error de compilación "No se ha definido el tipo definido por el usuario" que te envíe en la pregunta anterior, ingrese a la ayuda de la red y decía que ingresando a menu/Herramientas/Referencia se puede activar las referencias, por lo que active las siguientes referencias:
* Microsoft ActiveX Data Objects 2.8
* Microsoft ActiveX Data Objects Recordset 2.8 Library
Por lo que considero que se eliminó el error anterior, pero ahora me marca error de compilación: For sin Next, te reenvío el código y subrayado en negritas el nuevo error, agradeciendo de antemano tu apoyo, saludos.
Sub ConectarAccess()
End Sub
Public Sub cmdConectarAccess()
Dim DBFullName As String
Dim Cnct As String, Src As String
Dim Conex As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim strDB, strSQL As String
Dim strTabla As String
Dim IngTablas As Long
Dim i As Long
strDB = ThisWorkbook.Path & "\" & "AdministraciónCarterabd1.mdb"
' Nombre de los archivos de access
' construyo la primera cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Plazo" & _
"FROM 4FormularioResumenMinistraciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
For Each Campo In rst.Fields
xls.ActiveSheet.Cells(3, 1) = Campo.NoControl
xls.ActiveSheet.Cells(3, 2) = Campo.CréditoNo
xls.ActiveSheet.Cells(3, 3) = Campo.Plazo
' construyo la segunda cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, FechaInicial" & _
"FROM 3DetalleMinistración ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Fields
xls.ActiveSheet.Cells(3, 1) = Campo.NoControl
xls.ActiveSheet.Cells(3, 2) = Campo.CréditoNo
xls.ActiveSheet.Cells(3, 4) = Campo.FechaInicial
' construyo la tercera cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Mes" & _
"FROM 4ResumenMinistraciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Fields
xls.ActiveSheet.Range("J3:J26") = Campo.ImporteMinistrado
' construyo la cuarta cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, FechaInicial" & _
"FROM 3FormularioDetalleMinistración ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Fields
xls.ActiveSheet.Cells(3, 1) = Campo.NoControl
xls.ActiveSheet.Cells(3, 2) = Campo.CréditoNo
' construyo la quinta cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Mes" & _
"FROM 5FormularioResumenAmortizaciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Fields
xls.ActiveSheet.Cells(3, 1) = Campo.NoControl
xls.ActiveSheet.Cells(3, 2) = Campo.CréditoNo
' construyo la sexta cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Mes" & _
"FROM 5ResumenAmortizaciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.ActiveSheet.Range("K3:K26") = Campo.ImportedelPago
' construyo la septima cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo" & _
"FROM 4FormularioDetalleAmortización ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Fields
xls.ActiveSheet.Cells(3, 1) = Campo.NoControl
xls.ActiveSheet.Cells(3, 2) = Campo.CréditoNo
' crear la conexión
Set Connection = New ADODB.Connection
Set recSet = New ADODB.Recordset
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source =" & strDB & ";"
End Sub
Sub ImportarAccess()
Dim ruta As String
Dim basededatos As String
' ruta
ruta = ThisWorkbook.Path
basededatos = " AdministraciónCarterabd1.mdb "
Dim Conex As ADODB.Connection
Conex.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & ruta & "\" & basededatos)
' abrir el libro Exportar a Excel
strLibro = CurrentProject.Path & "\TablaAmortización.xlsm"
xls.Workbooks.Open (strLibro)
' visible o no
xls.Visible = False ' o false
' activo la hoja de excel denominda "TablaAmortización"
xls.Worksheets("\TablaAmortización.xlsm").Activate
' consulta SQL
strSQL = "SELECT * FROM " & strTabla & ""
recSet.Open strSQL, Connection
' Copiar datos a la hoja
ActiveSheet.Cells(3, 1).CopyFromRecordset recSet
' Copiar rótulos
IngCampos = recSet.Fields.Count
For i = 0 To IngCampos - 1
ActiveSheet.Cells(1, i + 1).Value = recSet.Fields(i).Name
Next
End Sub
Sub DesconectarAccess()
' Desconectar
recSet.Close: Set recSet = Nothing
End Sub
Hola experto buenas tardes, antes que nada gracias por tu tiempo y tus conocimientos, "realmente estoy aprendiendo" por que lo también te agradezco tu paciencia, te escribo nuevamente ya que al hacer lo que me indicaste pero mi proyecto sigue presentando error de ejecución, ahora me indica error de compilación: Atributo no válido en sub o en Function
(Lo que no quite fue "rescSet As New ADODB.Connection" por que no lo encontré, pero me quedo la duda si es "Dim Conex As ADODB.connection")
Te transcribo parte del código de como quedo (en caso de que lo requieras te lo envío completo) el error lo marca en (te lo indico en negritas), según te entendí en el primer "Sub"
Sub ConectarAccess()
Global Connection As New ADODB.Connection   (Atributo no válido en Sub o en Function)
Global recSet As New ADODB.Connection
Global xls As New Excel.Application
End Sub
Public Sub cmdConectarAccess()
DimDBFullName As String
Dim Cnct As String, Src As String
Dim Conex As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim strDB, strSQL As String
Dim strTabla As String
Dim IngTablas As Long
Dim i As Long
Dim Campo
Dim rst As Recordset
strDb = ThisWorkbook.Path & "\" & "AdministraciónCarterabd1.mdb"
'Nombre de los archivos de access
'construyo la primera cadena de la SELECT
..........
For Each Campo In rst.Field
Next
xls.ActiveSheet.Cells(3,1) = "rstNoControl"
xls.ActiveSheet.Cells(3, 2) = "rstCréditoNo"
xls.ActiveSheet.Cells(3, 3) = "rstPlazo"
Los demás campos quedaron así "rst...",  "rst...", etc.
EL Sub ImportarAccess quedo así
SubImportarAccess()
Dim ruta As String
Dim basededatos As String
Dim strLibro As String
Dim strTabla As String
Dim strSQL As String
Dim IngCampos As Integer
Dim i As Integer
Lo que hice fue agregar las variables que hiciste favor de indicarme, el cual te transcibí líneas arriba, pero sale ese error, de favor me puedes apoyar de como solucionar este problema, en caso de que requieras que te transcriba completo el código, con gusto te lo envío, saludos.
Experto te envío completo el código, saludos
Sub ConectarAccess()
Global Connection As New ADODB.Connection (Atributo no válido en sub o en Function
Global recSet As New ADODB.Connection
Global xls As New Excel.Application
End Sub
Public Sub cmdConectarAccess()
Dim DBFullName As String
Dim Cnct As String, Src As String
Dim Conex As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim strDB, strSQL As String
Dim strTabla As String
Dim IngTablas As Long
Dim i As Long
Dim Campo
Dim rst As Recordset
strDB = ThisWorkbook.Path & "\" & "AdministraciónCarterabd1.mdb"
' Nombre de los archivos de access
' construyo la primera cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Plazo" & _
"FROM 4FormularioResumenMinistraciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
For Each Campo In rst.Field
Next
xls.ActiveSheet.Cells(3, 1) = "rstNoControl"
xls.ActiveSheet.Cells(3, 2) = "rstCréditoNo"
xls.ActiveSheet.Cells(3, 3) = "rstPlazo"
' construyo la segunda cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, FechaInicial" & _
"FROM 3DetalleMinistración ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Field
xls.ActiveSheet.Cells(3, 1) = "rstNoControl"
xls.ActiveSheet.Cells(3, 2) = "rstCréditoNo"
xls.ActiveSheet.Cells(3, 4) = "rstFechaInicial"
' construyo la tercera cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Mes" & _
"FROM 4ResumenMinistraciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Field
xls.ActiveSheet.Range("J3:J26") = "rstImporteMinistrado"
' construyo la cuarta cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, FechaInicial" & _
"FROM 3FormularioDetalleMinistración ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Field
xls.ActiveSheet.Cells(3, 1) = "rstNoControl"
xls.ActiveSheet.Cells(3, 2) = "rstCréditoNo"
' construyo la quinta cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Mes" & _
"FROM 5FormularioResumenAmortizaciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Field
xls.ActiveSheet.Cells(3, 1) = "rstNoControl"
xls.ActiveSheet.Cells(3, 2) = "rstCréditoNo"
' construyo la sexta cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Mes" & _
"FROM 5ResumenAmortizaciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.ActiveSheet.Range("K3:K26") = "rstImportedelPago"
' construyo la septima cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo" & _
"FROM 4FormularioDetalleAmortización ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Field
xls.ActiveSheet.Cells(3, 1) = "rstNoControl"
xls.ActiveSheet.Cells(3, 2) = "rstCréditoNo"
' crear la conexión
Set Connection = New ADODB.Connection
Set recSet = New ADODB.Recordset
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source =" & strDB & ";"
End Sub
Sub ImportarAccess()
Dim ruta As String
Dim basededatos As String
Dim strLibro As String
Dim strTabla As String
Dim strSQL As String
Dim IngCampos As Integer
Dim i As Integer
' ruta
ruta = ThisWorkbook.Path
basededatos = " AdministraciónCarterabd1.mdb "
Dim Conex As ADODB.Connection
Conex.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & ruta & "\" & basededatos)
' abrir el libro Exportar a Excel
strLibro = CurrentProject.Path & "\TablaAmortización.xlsm"
xls.Workbooks.Open (strLibro)
' visible o no
xls.Visible = False ' o false
' activo la hoja de excel denominda "TablaAmortización"
xls.Worksheets("\TablaAmortización.xlsm").Activate
' consulta SQL
strSQL = "SELECT * FROM " & strTabla & ""
recSet.Open strSQL, Connection
' Copiar datos a la hoja
ActiveSheet.Cells(3, 1).CopyFromRecordset recSet
' Copiar rótulos
IngCampos = recSet.Fields.Count
For i = 0 To IngCampos - 1
ActiveSheet.Cells(1, i + 1).Value = recSet.Fields(i).Name
Next
End Sub
Sub DesconectarAccess()
' Desconectar
recSet.Close: Set recSet = Nothing
End Sub
Experto buenas noches, del ultimo correo ya corregí el error, te envío el código ya actualizado, es decir la última versión, pero ahora me sale otro error que dice se producido el error "91" en tiempo de ejecución "Variable de objeto o bloque With no establecido, en verdad agradezco todo tu apoyo, saludos
Global Connection As New ADODB.Connection
Global recSet As New ADODB.Connection
Global xls As New Excel.Application
Sub ConectarAccess()
End Sub
Public Sub cmdConectarAccess()
Dim DBFullName As String
Dim Cnct As String, Src As String
Dim Conex As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim strDB, strSQL As String
Dim strTabla As String
Dim IngTablas As Long
Dim i As Long
Dim Campo
Dim rst As Recordset
strDB = ThisWorkbook.Path & "\" & "AdministraciónCarterabd1.mdb"
' Nombre de los archivos de access
' construyo la primera cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Plazo" & _
"FROM 4FormularioResumenMinistraciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
For Each Campo In rst.Field
Next
xls.ActiveSheet.Cells(3, 1) = "rstNoControl"
xls.ActiveSheet.Cells(3, 2) = "rstCréditoNo"
xls.ActiveSheet.Cells(3, 3) = "rstPlazo"
' construyo la segunda cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, FechaInicial" & _
"FROM 3DetalleMinistración ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Field
xls.ActiveSheet.Cells(3, 1) = "rstNoControl"
xls.ActiveSheet.Cells(3, 2) = "rstCréditoNo"
xls.ActiveSheet.Cells(3, 4) = "rstFechaInicial"
' construyo la tercera cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Mes" & _
"FROM 4ResumenMinistraciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Field
xls.ActiveSheet.Range("J3:J26") = "rstImporteMinistrado"
' construyo la cuarta cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, FechaInicial" & _
"FROM 3FormularioDetalleMinistración ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Field
xls.ActiveSheet.Cells(3, 1) = "rstNoControl"
xls.ActiveSheet.Cells(3, 2) = "rstCréditoNo"
' construyo la quinta cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Mes" & _
"FROM 5FormularioResumenAmortizaciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Field
xls.ActiveSheet.Cells(3, 1) = "rstNoControl"
xls.ActiveSheet.Cells(3, 2) = "rstCréditoNo"
' construyo la sexta cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo, Mes" & _
"FROM 5ResumenAmortizaciónMensual ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.ActiveSheet.Range("K3:K26") = "rstImportedelPago"
' construyo la septima cadena de la SELECT
strSQL = "SELECT NoControl, CréditoNo" & _
"FROM 4FormularioDetalleAmortización ORDER BY NoControl"
xls.ActiveSheet.Range("A1:R26").Select
rst.Field
xls.ActiveSheet.Cells(3, 1) = "rstNoControl"
xls.ActiveSheet.Cells(3, 2) = "rstCréditoNo"
' crear la conexión
Set Connection = New ADODB.Connection
Set recSet = New ADODB.Recordset
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source =" & strDB & ";"
End Sub
Sub ImportarAccess()
Dim ruta As String
Dim basededatos As String
Dim strLibro As String
Dim strTabla As String
Dim strSQL As String
Dim IngCampos As Integer
Dim i As Integer
' ruta
ruta = ThisWorkbook.Path
basededatos = " AdministraciónCarterabd1.mdb "
Dim Conex As ADODB.Connection
Conex.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & ruta & "\" & basededatos)
' abrir el libro Exportar a Excel
strLibro = CurrentProject.Path & "\TablaAmortización.xlsm"
xls.Workbooks.Open (strLibro)
' visible o no
xls.Visible = False ' o false
' activo la hoja de excel denominda "TablaAmortización"
xls.Worksheets("\TablaAmortización.xlsm").Activate
' consulta SQL
strSQL = "SELECT * FROM " & strTabla & ""
recSet.Open strSQL, Connection
' Copiar datos a la hoja
ActiveSheet.Cells(3, 1).CopyFromRecordset recSet
' Copiar rótulos
IngCampos = recSet.Fields.Count
For i = 0 To IngCampos - 1
ActiveSheet.Cells(1, i + 1).Value = recSet.Fields(i).Name
Next
End Sub
Sub DesconectarAccess()
' Desconectar
recSet.Close: Set recSet = Nothing
End Sub
Te dejo un código sencillo para exportar a excel una tabla. Repitiéndolo y controlando en dónde escribe puedes enviar todas las tablas que quieras.
Creo que te puede ser útil verlo para después revisar lo que intentas hacer.
Un saludo
(Por cierto, está escrito en el bloc de notas por lo que podría haber algún error de tecleo)
sub exportarExcel()
    dim miXls as new Excel.application
    dim rs as dao.recordset
    dim i as integer
    dim nLin as long
    set rs=currentdb().openrecordset("nombre de la tabla") ' Abrimos la tabla
    if not rs.eof then rs.movefirst ' Nos posicionamos en el primer registro
    miXls.visible = true ' Mostramos el Excel
    miXls.workbooks.add ' Creamos un libro nuevo
    nLin = 0
    do while not rs.eof ' Hasta el final de la tabla
        nlin = nlin + 1
        for i = 0 to rs.fields.count -1
            mixls.activesheet.cells(nlin,i+1) = rs.fields(i)
        next i
        rs.movenext
    loop
    rs.close
end sub
Experto antes que nada gracias por tu apoyo, voy a hacer lo que me indicas y voy a cerrar la pregunta, en caso de duda te vuelvo a molestar, gracias, saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas