我正在构建一个必须同时兼容 Windows 和 Mac 的基于 Excel 的工具。此工具需要从 SQL Server 中提取数据并将数据推送到 SQL Server。我已经编写并测试了一种在 Windows 中工作的方法,并且应该在 Mac中工作,如此处所述(尽管该链接与 Excel 2011 相关):
On Error GoTo err1
Dim connstring As String
Dim sqlstring As String
Dim dArr As Variant
Dim qt As QueryTable
Dim sht As Worksheet
Set sht = ThisWorkbook.Sheets(1)
connstring = "ODBC;DRIVER={SQL Server};SERVER=SERVERNAME;DATABASE=master;Trusted_Connection=yes"
sqlstring = "SELECT 1"
Set qt = sht.QueryTables.Add(Connection:=connstring, Destination:=sht.Range("A1"), Sql:=sqlstring)
With qt
.BackgroundQuery = False
.RowNumbers = False
.Refresh
End With
此方法在 Excel 2016 for Mac 中不起作用。事实上,当我在 Mac 上记录添加连接的过程时,QueryTables.Add 方法甚至没有显示 Connection 或 SQL 参数......
我认为解决方法不是以编程方式创建表,而是手动创建表,然后根据需要以编程方式更改表的 CommandText(对于不同的参数等)。但是当我尝试访问 QueryTable 对象的 CommandText 属性时,Mac VBEditor 告诉我它找不到该成员!
是否有人在 Excel 2016 for Mac 中以编程方式成功创建了 ODBC QueryTables,或者这是 Excel 2016 的另一个不足之处?