【发布时间】:2016-05-18 19:20:52
【问题描述】:
我构建了一个基于 Excel 的工具,该工具使用 ODBC 连接和查询表从 SQL Server (2014) 中提取数据。此工具必须与 Mac Office 2016 兼容(因此是 ODBC 和查询表)。
我正在努力测试用户是否可以连接到 SQL Server。使用 ODBC 连接时,如果连接失败,则会打开一个 SQL Server 错误登录对话框,然后在我的错误处理生效之前打开一个登录对话框。
我发现uses either ADODB(与Mac 不兼容)或solution to Access VBA 的每个解决方案。 This answer 谈论 TCP 连接,但我找不到任何与 Mac 兼容的 TCP 和 VBA。
有人知道使用 VBA 测试与 Office for Mac 2016 兼容的 SQL Server 连接的方法吗?
我如何使用 ODBC 和查询表连接到 SQL Server 的示例。
Sub main()
On Error GoTo err1
Dim connstring As String
Dim sqlstring As String
Dim dArr As Variant
Dim qt As QueryTable
connstring = "ODBC;DRIVER={SQL Server};SERVER=SERVERNAME;DATABASE=master;Trusted_Connection=yes"
sqlstring = "SELECT 1"
Set qt = ActiveSheet.QueryTables.Add(Connection:=connstring, Destination:=ThisWorkbook.Sheets(1).Range("A1"), Sql:=sqlstring)
With qt
.BackgroundQuery = False
.RowNumbers = False
.Refresh
End With
dArr = qt.ResultRange.Value
qt.Delete
ThisWorkbook.Sheets(1).Cells.Clear
Exit Sub
err1:
Stop
End Sub
【问题讨论】:
-
你考虑过使用 try/catch 吗?
-
@Takarii 我很确定 VBA 不支持 try/catch...
-
没错。我在考虑VB
标签: sql-server excel vba macos odbc