连接到远程MySQL的Excel VBA中的错误处理

时间:2019-02-13 12:35:46

标签: mysql excel vba

我正在创建一个宏以将Excel工作表连接到SQL Server。 无论我在家还是在外面,Excel文件都将被使用。 现在,所有内容都可以访问我的DNS www.server1.com。

现在,如果由于某种原因服务器1无法正常工作,我想访问第二个备用服务器www.server2.com

问题是我无法处理该错误。 如果无法与服务器通信,则在“ Cn.Open ....”之后,宏将停止并且我收到excel错误: “ Run-rime错误:'-2147467259(80004005)”

我希望不是返回此错误,而是可以通过以下方式手动处理该错误: 如果Cn.Error然后 Server_Name =“ www.server2.com” 等等...

我该怎么做?

Server_Name = "www.server1.com" ' Enter your server name here
Port = "3306"
Database_Name = "mydb" ' Enter your database name here
User_ID = "myuserid" ' enter your user ID here
Password = "mypassword" ' Enter your password here

Dim Cn As ADODB.Connection
Set Cn = New ADODB.Connection

Cn.Open "Driver={MySQL ODBC 5.3 ANSI Driver};Server=" & Server_Name & ";PORT=" & Port & ";Database=" & Database_Name & ";Uid=" & User_ID & " ;Pwd=" & Password & ";"

1 个答案:

答案 0 :(得分:0)

您需要添加On Error ...并在下一行进行测试(如果已连接);如果不是,则连接到备份服务器。最后,停用错误处理。

Dim Cn As ADODB.Connection
Set Cn = New ADODB.Connection

On Error Resume Next
Cn.Open "Driver={MySQL ODBC 5.3 ANSI Driver};Server=" & Server_Name & ";PORT=" & Port & ";Database=" & Database_Name & ";Uid=" & User_ID & " ;Pwd=" & Password & ";"

if Cn.State = 0 Then : _
    Cn.Open ... 'Backup connection

On Error Goto 0