Как отключить диалоговое окно ODBC для подключения без DSN? - PullRequest
1 голос
/ 12 августа 2011

Я пытаюсь получить доступ к таблице MySQL через соединение ODBC без DSN из Microsoft Access.У меня нет проблем на самом деле при подключении - допустимое имя пользователя и пароль.Однако в любом из этих случаев недопустимо, появляется диалоговое окно ODBC с запросом деталей подключения.Можно ли как-то помешать появлению диалогового окна ODBC и разрешить ошибку соединения?

Моя строка подключения ODBC:

"ODBC; Драйвер = MySQL ODBC 3.51 Драйвер; SERVER = XXXX;БАЗА ДАННЫХ = ХХХХ; UID = ХХХХ; PWD = ХХХХ; Вариант = 3"

Ответы [ 3 ]

0 голосов
/ 12 августа 2011

Я не знаю, поможет ли это вам, но фактическим аргументом API-интерфейса ODBC SQLDriverConnect, который останавливает отображение диалоговых окон, является SQL_DRIVER_NOPROMPT. Однако следует предупредить, что не все драйверы точно соответствуют спецификации. Я не знаю, как вы получаете MS Access для вызова SQLDriverConnect с SQL_DRIVER_NOPROMPT - извините.

0 голосов
/ 12 августа 2011

Взгляните на - 19.1.4.2. Параметры соединения разъема / ODBC

В частности, параметр "options" и его флаг "FLAG_NO_PROMPT" ...

0 голосов
/ 12 августа 2011

Вы можете остановить его с помощью «DoCmd.SetWarnings False».

Другим вариантом является попытка «В случае ошибки продолжить далее» в начале процедуры. Вы можете выполнить проверку в коде ошибки «Ошибка вызова ODBC» (я думаю, что err.number = 3151). Просто вставьте if сразу после того, как вы попытаетесь подключиться к ODBC, в случае сбоя отправьте его на выход.

On Error Resume Next
Dim db As DAO.Database 'Will also work with ADO
Dim ODBCstr As String

Set db = 'Connect with ODBC here

If Err.Number = 3151 Then 'Could also try If Err.Number <> 0 Then
   GoTo Exit_ThisCode
End If

Это может сработать, если на самом деле выдается ошибка, когда не удается подключиться. Если вы решите проверить с конкретным кодом ошибки, просто убедитесь, что вы знаете правильный.

...