首页 >数据库 >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