Обработка ошибок в Excel VBA при подключении к удаленному MySQL - PullRequest
0 голосов
/ 13 февраля 2019

Я создаю макрос для подключения таблицы Excel к серверу SQL.Файл Excel будет использоваться как дома, так и снаружи.Теперь все работает, обращаясь к моему DNS www.server1.com.

Теперь, если по какой-то причине сервер 1 не работает, я хочу обратиться ко второму серверу резервного копирования www.server2.com

Проблема в том, что я не могу обработать ошибку.после «Cn.Open ....», если он не может связаться с сервером, макрос останавливается, и я получаю сообщение об ошибке Excel: «Ошибка выполнения: -2147467259 (80004005)»

IЯ хочу, чтобы вместо возврата этой ошибки я мог вручную обработать ошибку с помощью чего-то подобного: Если Cn.Error Then Server_Name = "www.server2.com" и т. д.1009 *

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 голосов
/ 13 февраля 2019

Вам необходимо добавить 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...