Importar Datos de Consulta Access a Excel 2007 con código VBA
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.ConnectionDim rsTabla As ADODB.RecordsetDim fld As ObjectDim sNombreTabla As StringDim sNombreAccess As StringDim i As IntegerstrHoja = ActiveSheet.Namefilasaborrar = Sheets(strHoja).Range("A3").End(xlDown).RowSheets(strHoja).Range("A3", "E" & filasaborrar) = clearConntentsNombreAccess = "C:\DICCIONARIO\EMPLEADOS.accdb"If sNombreAccess <> "" ThensNombreTabla = "Listado_CCF+CtaContable"Set oConexion = New ADODB.ConnectionoConexion.CursorLocation = adUseClientoConexion.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _"Data Source=" & sNombreAccess & ";Persist Security Info=False;"Set rsTabla = New ADODB.RecordsetrsTabla.Open "Select NroHum, NombreRegTbl, NitCaj, CodigoCaj, CuentasTer From [" & sNombreTabla & "]", _oConexion, _adOpenStaticFor i = 0 To rsTabla.Fields.Count - 1ActiveSheet.Cells(2, i + 1).Value = rsTabla.Fields(i).NameActiveSheet.Cells(2, i + 1).Font.Bold = TrueActiveSheet.Cells(2, i + 1).HorizontalAlignment = xlCenterNextfila = 3columna = 1While Not rsTabla.EOFFor Each fld In rsTabla.FieldsActiveSheet.Cells(fila, columna) = Trim(fld.Value)columna = columna + 1Nextcolumna = 1fila = fila + 1rsTabla.MoveNextWendcolumnasajustar = Sheets(strHoja).Range("A1").End(xlDown).RowRange("A1:E" & columnasajustar).EntireColumn.AutoFitrsTabla.CloseoConexion.CloseSet rsTabla = NothingSet oConexion = NothingEnd IfEnd 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?