我正在使用 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 & ";"
最佳答案
我终于让它工作了............ :)
我从 VBA code to fetch data from Mysql DB in Mac Excel 2011 更改了代码并将其调整为以下内容:
Sub SqlConnection()
Dim sqlstring As String
Dim connstring As String
Dim sLogin As String
sLogin = "Uid=$;Pwd=$;"
sqlstringfirma = "select * from gi_kunden.tbl_firma"
sqlstringperson = "select * from gi_kunden.tbl_person"
connstring = "ODBC;DSN=KundeDB;" & sLogin
ActiveWorkbook.Sheets("Firma").Select
ActiveSheet.Range("A1:T2000").Clear
Dim qt As QueryTable
For Each qt In ActiveSheet.QueryTables
qt.Delete
Next qt
With ActiveSheet.QueryTables.Add(Connection:=connstring, Destination:=Range("A1"), Sql:=sqlstringfirma)
.BackgroundQuery = False
.Refresh
End With
ActiveWorkbook.Sheets("Person").Select
ActiveSheet.Range("A1:T2000").Clear
For Each qt In ActiveSheet.QueryTables
qt.Delete
Next qt
With ActiveSheet.QueryTables.Add(Connection:=connstring, Destination:=Range("A1"), Sql:=sqlstringperson)
.BackgroundQuery = False
.Refresh
End With
End Sub
这似乎很好用......经过数小时的冲浪和谷歌搜索^^(哈利路亚!!)
不管怎么说,还是要谢谢你 :)
关于sql-server - 使用 ActualTech odbc 驱动程序连接到 sql server - Mac 上的 VBA Office 2011,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33998229/