在Excel上,我有一个使用MySQL Connector/ODBC从数据库中获取外部数据的表。
如果在我refresh时连接失败,则会出现MySQL Connector / ODBC数据源配置窗口。
而不是我希望向用户显示自定义错误message。
检查刷新是否成功after刷新为时已晚,无法阻止窗口,因此如果ping失败,我会ping the server before刷新并取消刷新。
我的问题是否有更可靠/标准的方式在没有连接时不显示窗口。由于security原因,我不想在我的代码上写密码(与DSN建立联系)并且我不知道ping技巧是否会一直有效或者如果它可能很少出现意外错误或结果。
此外,我认为在技术上或理论上可能连接状态在ping检查和刷新之间发生变化,即使这不是世界末日(如果在快速之间甚至可能)运行代码)。
任何人询问的代码示例:
Sub Table()
Sheets(1).ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=connection_test;", Destination:=Range("A1")).QueryTable.CommandText = Array("SELECT table_test_0.`column _test` FROM db_test.table_test table_test_0")
End Sub
Sub Refresh()
Sheets(1).ListObjects(1).QueryTable.Refresh
End Sub