如何在DSN-Less连接上禁止ODBC对话框?

时间:2011-08-12 12:08:15

标签: ms-access connection odbc

我试图通过Microsoft Access的DSNless ODBC连接访问MySQL表。我没有问题,实际连接是一个有效的用户名和密码。但是,如果其中任何一个无效,将出现ODBC对话框屏幕,询问连接详细信息。有没有办法阻止ODBC对话框屏幕出现,只是让连接错误?

我的ODBC连接字符串是

“ODBC;驱动程序= MySQL ODBC 3.51驱动程序; SERVER = XXXX; DATABASE = XXXX; UID = XXXX; PWD = XXXX;选项= 3”

4 个答案:

答案 0 :(得分:1)

这个 FLAG_NO_PROMPT 想法确实有效。在连接字符串中,您通常有类似“ODBC;DRIVER=.......; OPTION=3”的内容

FLAG_NO_PROMPT 加 16,即使用 OPTION=19,它会抑制系统提示。

答案 1 :(得分:0)

您可以使用“DoCmd.SetWarnings False”停止它。

另一种选择是在程序开始时尝试“On Error Resume Next”。你可以在代码中检查“ODBC调用失败”错误(我认为err.number = 3151)。在尝试连接到ODBC之后,只需输入一个if,如果失败,则将其发送到退出。

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

这可能有效,只要在连接失败时实际抛出错误。如果您选择使用特定的错误代码进行检查,请确保您知道正确的错误代码。

答案 2 :(得分:0)

我不知道它是否会对您有所帮助,但是停止显示对话框的ODBC API SQLDriverConnect的实际参数是SQL_DRIVER_NOPROMPT。但是,应该警告您并非所有驱动程序都完全遵循规范。我不知道如何让MS Access使用SQL_DRIVER_NOPROMPT调用SQLDriverConnect - 抱歉。

答案 3 :(得分:0)

看看 - 19.1.4.2. Connector/ODBC Connection Parameters

具体来说,“options”参数及其标志“FLAG_NO_PROMPT”......