首頁 >資料庫 >mysql教程 >如何直接從 Excel VBA 程式碼查詢 SQL 資料庫?

如何直接從 Excel VBA 程式碼查詢 SQL 資料庫?

Barbara Streisand
Barbara Streisand原創
2024-12-25 02:57:09575瀏覽

How Can I Query a SQL Database Directly from My Excel VBA Code?

在Excel 中從VBA 查詢SQL

利用Excel 中的VBA,您可以透過直接與SQL 資料庫互動來擴充電子表格的功能。這允許您執行 SQL 查詢、檢索結果並將其整合到 Excel 工作簿中。

考慮以下VBA 子例程,該子例程連接到特定SQL Server 實例並執行SQL 查詢:

Sub ConnectSqlServer()

    Dim conn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sConnString As String

    ' Adjust according to your environment
    sConnString = "Provider=SQLOLEDB;Data Source=INSTANCE\SQLEXPRESS;" & _
                  "Initial Catalog=MyDatabaseName;" & _
                  "Integrated Security=SSPI;"

    ' Create connection and recordset objects
    Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset

    ' Open connection and execute query
    conn.Open sConnString
    Set rs = conn.Execute("SELECT * FROM Table1;")

    ' Check for data
    If Not rs.EOF Then
        ' Transfer results to Excel sheet
        Sheets(1).Range("A1").CopyFromRecordset rs
        ' Close 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

要使用此子例程,請修改以下部分:

  • 資料來源: 將「INSTANCESQLEXPRESS」替換為您的SQL Server實例的名稱。
  • 初始目錄: 將「MyDatabaseName」替換為您要連接的資料庫的名稱。
  • 整合安全性:如果使用 Windows 驗證,則調整為“True”,如果使用,則調整為“False” SQL Server 驗證。在後一種情況下,替換“Integrated Security=SSPI;” with "User ID=[使用者名稱];Password=[密碼];"。

修改後,執行VBA子程式建立連接,執行「Execute」語句中指定的SQL查詢,並將結果填入指定的 Excel 工作表中。

以上是如何直接從 Excel VBA 程式碼查詢 SQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn