Office - Excel Recordset con datos de una Query en Access

 
Vista:

Excel Recordset con datos de una Query en Access

Publicado por TORTUGO (3 intervenciones) el 01/03/2006 10:46:41
Hola atod@s,os comento un problemilla que tengo.
Estoy trabajando en Excel y defino un Recordset que traiga los datos de Access.
Tal que asi:

"Dim con As New ADODB.Connection
Dim rec As New ADODB.Recordset
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mimdb.mdb;"
Set rec = New ADODB.Recordset:: rec.open("mitabla")"

EL tema es que me funciona si intento abrir una tabla pero me falla con consultas
Q falla? NO hay otra solucion a parte de meter la consulta en SQL a pelo?
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Excel Recordset con datos de una Query en Acces

Publicado por CArlos Otero (314 intervenciones) el 03/03/2006 20:58:24
Buenas tardes. te sugiero que primero revises desde el editor de visual basic de excel que en el menu Herramientas / Referencias, tengas activada una que le llama Microsoft Office 8.0 Object Library. O las que tengan un nombre parecido en tu excel. Sino, aqui te envio un ejemplo que te puede guiar, el cual Importa una tabla de Access a Excel.

Sub Importar_Access()
'dimensiones
Dim datConnection As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim strDB, strSQL As String
Dim strTabla As String
Dim lngTablas As Long
Dim i As Long
'elegir uno de estas dos rutas al archivo Access
strDB = ThisWorkbook.Path & "\" & "db.mdb"
'strDB = "C:\vba\db.mdb" 'si en otra carpeta
'nombre de la tabla del archivo Access
strTabla = "salarios_2003"
'crear la conexión
Set datConnection = New ADODB.Connection
Set recSet = New ADODB.Recordset
datConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source =" & strDB & ";"
'consulta SQL
strSQL = "SELECT * FROM " & strTabla & ""
recSet.Open strSQL, datConnection
'copiar datos a la hoja
ActiveSheet.Cells(2, 1).CopyFromRecordset recSet
'copiar rótulos
lngCampos = recSet.Fields.Count
For i = 0 To lngCampos - 1
ActiveSheet.Cells(1, i + 1).Value = recSet.Fields(i).Name
Next
'desconectar
recSet.Close: Set recSet = Nothing
datConnection.Close: Set datConnection = Nothing
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar