Access - Conexión residual al conectar con una base de datos externa?

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Conexión residual al conectar con una base de datos externa?

Publicado por Beni (23 intervenciones) el 28/04/2023 14:27:12
Saludos,

Sería genial si alguien aportara algo de luz a un problema que tengo, pero que no consigo solventar

1) Partamos de una base de datos Access.

2) Sobre ella, creo una tabla enlazada a SQL Server, usando ODBC

MyDatabase = DbEngine.Workspaces(0).OpenDatabase(Currentdb.Name)
MyTableDef = MyDatabase.CreateTableDef("MiTabla")
MyTableDef.Connect = "ODBC;DRIVER=SQL Server;SERVER=SERVIDOR\INSTANCIA;APP=MiPrograma;WSID=SERVIDOR;UID=MiUsuario;PWD=MiClave;DATABASE=MiBaseDatos
MyTableDef.SourceTableName = "MiTabla"
MyDatabase.TableDefs.Append MyTableDef

3) Una vez usada esa tabla, la borro de nuevo

Docmd.DeleteObject acTable, MiTabla

4) En algún momento posterior, recupero una copia de seguridad de la base de datos que consulté antes
(uso ADODB + RESTORE DATABASE)
(ambién me pasaría si borro la Base de Datos y la vuelvo a crear)

5) Si ahora intento volver a crear una tabla enlazada de esa base de datos, me salta un error
ODBC: Falló la llamada

Estoy convencido que Access mantiene algún vínculo con la base de datos que usé antes, y eso me genera los problemas. Quizás si haya alguna manera de resetear esas conexiones que recuerda, podría solventar este problema.

Si dejo el programa abierto un buen rato, y luego vuelvo a intentar crear la tabla enlazada, entonces vuelve a funcionar.
Una razón más que me dice que es algo activo que recuerda Access sobre la conexión a esa base de datos, y que da problemas debido a que esa base de datos se recuperó, y por lo tanto es distinta a la conexión que recuerda Access

En el programa que tengo, contínuamente enlazo tablas, las uso, y luego las elimino. Todo correcto siempre.
Pero cuando quiero recuperar una copia o empiezo a crear y eliminar bases de datos, pierdo la conectividad y me saltan errores dificiles de controlar

Ojalá alguien pueda aportar algo de luz a este asunto
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

Conexión residual al conectar con una base de datos externa?

Publicado por Anonimo (3316 intervenciones) el 28/04/2023 14:53:47
Yo no acusaría a Access de ese problema, lo que Access puede 'recordar' esta en las tablas del sistema (ocultas por diseño, visibles a voluntad) en ellas están los enlaces de datos (también los asociados a las tablas).

No recomiendo manipularlas si no se tiene experiencia de como 'funcionan', pero se pueden leer y analizándolas ver si requieren mantenimiento.

Encaminaría las sospechas hacia el registro del sistema que (por diseño) guarda las interactuaciones del usuario para ayudarle en base a lo que hace de forma recurrente y lo aplica cuando aparece la ocasión.

Conclusión:
Compactar de vez en cuando para que la 'limpieza' también alcance al registro y si no lo logra aun queda el remedio de limpiar directamente el registro y 'borrarle la memoria'.
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