Foros del Web » Soporte técnico » Ofimática »

Importar Datos de Consulta Access a Excel 2007 con código VBA

Estas en el tema de Importar Datos de Consulta Access a Excel 2007 con código VBA en el foro de Ofimática en Foros del Web. Buen día:Tengo el siguiente código VBA en una hoja de excel el cual me permite conectarme usando ADODB a una base de datos de Access ...
  #1 (permalink)  
Antiguo 17/05/2013, 13:58
Avatar de alexsc  
Fecha de Ingreso: febrero-2012
Ubicación: Bogota D.C.
Mensajes: 8
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Importar Datos de Consulta Access a Excel 2007 con código VBA

Buen día:Tengo el siguiente código VBA en una hoja de excel el cual me permite conectarme usando ADODB a una base de datos de Access e importar datos de una Tabla especifica:

Private Sub ActualizarCajas_Click()

Dim oConexion As ADODB.Connection
Dim rsTabla As ADODB.Recordset
Dim fld As Object
Dim sNombreTabla As String
Dim sNombreAccess As String
Dim i As Integer

strHoja = ActiveSheet.Name

filasaborrar = Sheets(strHoja).Range("A3").End(xlDown).Row
Sheets(strHoja).Range("A3", "E" & filasaborrar) = clearConntent

sNombreAccess = "C:\DICCIONARIO\EMPLEADOS.accdb"
If sNombreAccess <> "" Then
sNombreTabla = "Listado_CCF+CtaContable"
Set oConexion = New ADODB.Connection
oConexion.CursorLocation = adUseClient
oConexion.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & sNombreAccess & ";Persist Security Info=False;"
Set rsTabla = New ADODB.Recordset
rsTabla.Open "Select NroHum, NombreRegTbl, NitCaj, CodigoCaj, CuentasTer From [" & sNombreTabla & "]", _
oConexion, _
adOpenStatic

For i = 0 To rsTabla.Fields.Count - 1
ActiveSheet.Cells(2, i + 1).Value = rsTabla.Fields(i).Name
ActiveSheet.Cells(2, i + 1).Font.Bold = True
ActiveSheet.Cells(2, i + 1).HorizontalAlignment = xlCenter
Next

fila = 3
columna = 1
While Not rsTabla.EOF
For Each fld In rsTabla.Fields
ActiveSheet.Cells(fila, columna) = Trim(fld.Value)
columna = columna + 1
Next
columna = 1
fila = fila + 1
rsTabla.MoveNext
Wend
columnasajustar = Sheets(strHoja).Range("A1").End(xlDown).Row
Range("A1:E" & columnasajustar).EntireColumn.AutoFit
rsTabla.Close
oConexion.Close
Set rsTabla = Nothing
Set oConexion = Nothing
End If
End Sub

Este código funciona perfectamente si a la variable sNombreTabla le asigno el nombre de una tabla, pero al asignarle el nombre de una consulta, que en este caso es "Listado_CCF+CtaContable" no extrae ningún dato a la hoja de Excel.

Podrían por favor indicarme que le hace falta para que me funcione ya sea con el nombre de una Tabla o una Consulta?? Muchísimas gracias.

Etiquetas: adodb, excell, vba
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:13.