我试图通过Microsoft Access的DSNless ODBC连接访问MySQL表。我没有问题,实际连接是一个有效的用户名和密码。但是,如果其中任何一个无效,将出现ODBC对话框屏幕,询问连接详细信息。有没有办法阻止ODBC对话框屏幕出现,只是让连接错误?
我的ODBC连接字符串是
“ODBC;驱动程序= MySQL ODBC 3.51驱动程序; SERVER = XXXX; DATABASE = XXXX; UID = XXXX; PWD = XXXX;选项= 3”
答案 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”......