【发布时间】:2021-04-20 20:02:40
【问题描述】:
我有一些运行良好的 vba 代码,但我现在必须使用来自不同数据库的数据运行此代码。新的数据库驱动程序是 SQL Server Native Client 11。我怀疑连接字符串有问题,因为它是不同的驱动程序。如果我只是将“provider=”替换为 {SQL Server Native Client 11.0} 或者是否需要声明所有新变量等,是否可以使用此代码...
Private Sub sqlQueryScript()
On Error GoTo CleanUp
'Declare variables'
Dim user As String
Dim conn As Object
Dim rs As Object
Dim strSql As String
Set conn = CreateObject("ADODB.Connection")
'Open receipt connection'
user = Environ("username")
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Users\" & user & "\Desktop\db\" & dbName
conn.Open
'Set and Excecute SQL Command'
strSql = query
'Open Recordset'
Set rs = conn.Execute(strSql)
rs.Close
rs.Open strSql
'Copy Data to Excel'
Set data = Workbooks(fName).Sheets(fac)
data.Range("A2").CopyFromRecordset rs
'Copy Header to Excel
For i = 0 To rs.Fields.Count - 1
data.Cells(1, i + 1).Value = rs.Fields(i).Name
Next i
CleanUp:
'Close Connection'
conn.Close
End Sub
【问题讨论】:
标签: sql-server excel vba connection-string