Есть приложение MS Access с таблицами на MS SQL Server, связанное через ODBC. Когда соединение потеряно, я получаю ошибку ODBC 3146. После физического восстановления соединения я все еще получаю ошибки ODBC 3146. Мне нужно сделать что-то вроде переподключения к серверу. Как я могу сделать это в MS Access?
Как восстановить соединение ODBC после сбоя в MS Access
Ответы (2)
Я думаю, все, что вам нужно сделать, это обновить ссылки на таблицы. Вы спрашиваете, как перелинковать таблицы программно? Вы пытались обновить ссылки после отключения и убедились, что это решает проблему? Обновление ссылки в VBA будет выглядеть примерно так
Dim db as Database
Set db = Currentdb()
db.TablesDefs(1).RefreshLink
Возможно, вам придется пройтись по таблицам, чтобы получить индекс. Я не уверен, что он возьмет имя таблицы, но вы можете сначала попробовать это сделать.
Где находится ваша таблица Access по отношению к вашему SQL Server? Если ваша таблица Access является локальной и вы единственный, кто ее использует, достаточно обновить ссылки на таблицу. Однако, если база данных Access находится на сервере или в другом общем пространстве, где ее используют многие люди, они не смогут получить доступ к таблицам SQL, если вы используете USER DSN. Настройка системного DSN или файла DSN предоставит Access необходимую информацию о том, где находятся таблицы SQL.