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
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


0