Access - ADO + Conexión Remota a .accdb en carpeta

   
Vista:

ADO + Conexión Remota a .accdb en carpeta

Publicado por Oliveira (1 intervención) el 13/07/2015 00:18:00
Estimados,

Tengo un procedimiento que al ejecutar me entrega un mensaje de error: "Se ha producido error '91' en tiempo de ejecución: Variable de objeto o bloque With no establecido", luego al depurar el código, la línea con problemas es ésta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
conexion.Open "Provider=Microsoft.ACE.OLEDB.15.0; Data Source=C:\Users\Usuario\basedamnificados.accdb"
 
 
Sub conexion_remota()
 
Dim conexion As ADODB.Connection
 
Dim conexion_recordset As ADODB.Recordset
 
Dim extraccion As String
 
extraccion = "SELECT * FROM bbdd_damnificados" 'extraccion de todos los campos de la tabla
 
conexion.Open "Provider=Microsoft.ACE.OLEDB.15.0; Data Source=C:\Users\Usuario\basedamnificados.accdb" 'Driver a utilizar; locación
 
conexion_recordset.Open extraccion, conexion, adOpenDynamic, adLockOptimistic 'se agrega concurrencia de usuarios a la bbdd
 
Do Until conexion_recordset.EOF
 
Debug.Print conexion_recordset!NRUT & " " & conexion_recordset!NMAPEPAT
 
conexion_recordset.MoveNext
 
Loop
 
'liberación de recursos
 
conexion_recordset.Close
 
Set conexion_recordset = Nothing
 
conexion.Close
 
Set conexion = Nothing
 
End Sub

Mi idea es obtener en la ventana Inmediato los datos Rut y nombre de ciertos registros. (los nombres de tablas los he revisado varias veces, así que no es problema de sintaxis)

Ayuda por favor!!! :(
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
Imágen de perfil de Neckkito

ADO + Conexión Remota a .accdb en carpeta

Publicado por Neckkito (1104 intervenciones) el 13/07/2015 11:56:48
Hola!

Aunque no manejo ADO lo primero que veo es que estás declarando los objetos ADO, pero no los estás instanciando. Y, lógicamente, debes instanciarlos.

Prueba a declararlos al tiempo que los instancias, así:

Dim conexion As New ADODB.Connection

Dim conexion_recordset As New ADODB.Recordset

De todas maneras si te vas a manejar con Access - Access yo te recomendaría que utilizaras DAO. Tu código podría quedar una cosa así:

...
Sub extraccion_remota()
Dim miSql As String
Dim rst As DAO.Recordset

miSql = "SELECT * FROM (SELECT * FROM bbdd_damnificados IN 'C:\Users\Usuario\basedamnificados.accdb') AS BDExterna"

Set rst = CurrentDb.OpenRecordset(miSql)
With rst
Do Until .EOF
Debug.Print .Fields("NRUT").Value & " " & .Fields("NMAPEPAT")
.MoveNext
Loop
End With

rst.Close
Set rst = Nothing
End Sub
...

A ver si alguno de los sistemas te funciona.

Saludos,
firmaMail
http://neckkito.siliconproject.com.ar/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar