2013-03-27 4 views
2

Существует приложение MS Access с таблицами на MS SQL Server, связанными через ODBC. Когда соединение потеряно, я получаю ошибку ODBC 3146. После восстановления соединения физически я все еще получаю ошибки ODBC 3146. Я должен сделать что-то вроде повторного подключения к серверу. Как я могу сделать это в MS Access?Как восстановить соединение ODBC после сбоя в MS Access

ответ

3

Я думаю, что все, что вам нужно сделать, это обновить ссылки в таблице. Вы спрашиваете, как программировать таблицы? Вы пытались обновить ссылки после того, как отключили и проверили, что это решает проблему? Освежающие ссылку в VBA будет что-то вроде

Dim db as Database 
Set db = Currentdb() 
db.TablesDefs(1).RefreshLink 

Вы, возможно, придется петлю через таблиц, чтобы получить индекс и я не уверен, если он будет принимать имя таблицы, но вы можете попробовать это таким образом первый.

+0

Спасибо за ответ. Да, это очень полезная информация, но в первую очередь мне нужно понять, что именно решает проблему соединения с ODBC - есть ли какой-либо специальный метод приложения, например connection.reconnect или .close then .open. В проекте содержится около 180 связанных таблиц, поэтому обновляющая ссылка для каждого из них займет много времени. Есть ли другой способ переподключения? –

+0

Почему у вас есть 180 связанных таблиц? Если есть таблицы с похожими столбцами, вы можете просто связать эти столбцы с другими таблицами, если я прав. – user3864563

0

Где ваша таблица Access со ссылкой на ваш SQL Server? Если ваша таблица доступа является локальной, и вы используете ее только тогда, достаточно обновить ссылки на таблицы. Однако, если Access db живет на сервере или в другом общем пространстве, где многие люди его используют, они не смогут получить доступ к таблицам SQL, если вы используете USER DSN. Настройка системного DSN или файла dsn предоставит Access информацию, которую он ищет, где находятся таблицы SQL.

Смежные вопросы