【发布时间】:2016-03-04 01:36:16
【问题描述】:
我正在使用 MS Office 2011 在 Mac OS X Yosemite 上工作。我正在尝试将我的 Excel 工作簿连接到 sql 数据库。这必须通过 VBA 完成,因为稍后我想读取以及将数据写入数据库。
我找不到与该数据库建立连接的方法。我下载了actualtech odbc驱动程序并设置了我的dsn(不确定我是否做得对,在主页上找不到如何使用sql-server)。
我能找到以下代码。我收到错误:
strSRV = "server_name"
strDB = "database_name"
sqlLogin = "TEST" 'has to be changed
sqlPW = "TEST_PW" 'has to be changed
strConn = "ODBC;DSN=" & strSRV & ";UID=" & sqlLogin & ";PWD=" & sqlPW & ";Database=gi_kunden"
With Sheets("Firma").ListObjects
sqlCommand = "Select * From tbl_firma"
.Add(SourceType:=0, Source:=strConn, LinkSource:=True, Destination:=ActiveWorkbook.Sheets("Firma").Range("A2")).QueryTable 'Get an error here
.CommandText = Array(sqlCommand)
End With
With Sheets("Person").ListObjects
sqlCommand = "Select * From tbl_person"
.Add(SourceType:=0, Source:=strConn, LinkSource:=True, Destination:=ActiveWorkbook.Sheets("Person").Range("A2")).QueryTable 'Get an error here
.CommandText = Array(sqlCommand)
End With
还尝试了以下代码:
strConn = "Provider=SQLNCLI10;" & _
"Server=" & strSRV & ";" & _
"Database=" & strDB & ";" & _
"UID=" & sqlLogin & ";" & _
"PWD=" & sqlPW & ";"
【问题讨论】:
-
错误信息是什么?
-
运行时错误'5':无效的过程调用或参数:(
-
odbc.connection 和 odbc.recordset 也不起作用...
-
我也改变了 strSRV="gi_kunden" 就像在 odbc 管理器中一样......
-
您好:我首先找到了它不起作用的原因......我下载的 ODBC 驱动程序不包括驱动程序。因此,尽管它们显示在 ODBC 管理器中,但它们从未安装过。现在我至少几乎可以连接到服务器了。似乎我需要向允许从其他地方连接的 SQL 数据库添加一个新用户......如果我应该让它工作,我会更新这个线程......如果有人有一些提示,我会很感激他们 :) 现在谢谢 :)
标签: sql-server excel vba macos