如何在Access或Excel中最好地使用VBA来测试ODBC连接?

AR.*_*AR. 1 excel ms-access odbc vba

给定一个预配置的ODBC系统DSN,我想编写一个使用VBA 优雅地测试该连接的函数.

Private Function TestConnection(ByVal dsnName As String) As Boolean

    ' What goes here?? '

End Function
Run Code Online (Sandbox Code Playgroud)

编辑:为了澄清,系统DSN指向外部SQL Server 2005数据库,使用Windows NT身份验证.

我尝试过的一种方法是将一些随机查询发送到目标数据库并捕获错误.如果查询有效,则返回true.如果有错误则返回false.这工作得很好,但感觉...... kludgy.有没有更优雅的方式,特别是不依赖On Error Goto的方式

注意:这是我正在使用的传统Access 2000数据库,因此任何解决方案都不能具有任何Access 2007或2003依赖项.我想把它变成VBA的通用,但如果在Access中有一个简单的方法也很好.

任何建议都很有必要.

sha*_*esh 5


Dim cnn As ADODB.Connection
Dim canConnect as Boolean
Set cnn = New ADODB.Connection

cnn.Open "DSN HERE"
If cnn.State = adStateOpen Then
    canConnect = True
    cnn.Close
End If

Msgbox canConnect

编辑:DSN格式可以是"DSN = MyDSN; UID = myuser; PWD = myPwd;"
看看这个连接字符串