我对SQL和VBA都比较陌生。我已经编写了一个SQL查询,希望能够从Excel工作簿中的VBA子程序中调用并运行该查询,然后将查询结果带入工作簿。我在网上(stackoverflow和其他地方)找到了一些子程序,声称可以实现这一点,但由于它们没有解释,我很难理解。例如,这是我在网上找到的一个子程序:
Sub ConnectSqlServer()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String
' Create the connection string.
sConnString = "Provider=SQLOLEDB;Data Source=INSTANCE\SQLEXPRESS;" & _
"Initial Catalog=MyDatabaseName;" & _
"Integrated Security=SSPI;"
' Create the Connection and Recordset objects.
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
' Open the connection and execute.
conn.Open sConnString
Set rs = conn.Execute("SELECT * FROM Table1;")
' Check we have data.
If Not rs.EOF Then
' Transfer result.
Sheets(1).Range("A1").CopyFromRecordset rs
' Close the recordset
rs.Close
Else
MsgBox "Error: No records returned.", vbCritical
End If
' Clean up
If CBool(conn.State And adStateOpen) Then conn.Close
Set conn = Nothing
Set rs = Nothing
End Sub
首先,这个会起作用吗?第二,我需要在 sub 中替换什么(看起来像 provider、data source、initial catalog 等),我在哪里找到要替换的信息?
希望我的问题不太令人困惑,感谢您的帮助!