You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过VBA绕过SQL Server身份验证运行Access宏查询

在VBA中连接SQL Server并绕过身份验证的方法

当然可以实现!你完全能通过VBA直接在连接字符串中嵌入数据库凭据,或是给传递查询配置带凭据的连接,彻底摆脱手动输入用户名密码的弹窗。下面给你两种实用的实现方案:

方法1:用ADODB连接直接执行查询

这种方式最灵活,适合直接在VBA里编写并运行SQL查询,全程无需手动干预。核心是把用户名和密码直接写入连接字符串:

Sub RunSQLQueryWithCredentials()
    Dim conn As Object
    Dim rs As Object
    Dim sqlStr As String
    Dim connStr As String
    
    ' 替换成你的服务器、数据库、用户名和密码
    connStr = "Provider=SQLOLEDB;Server=YourServerName;Database=YourDatabaseName;" & _
              "Uid=YourUsername;Pwd=YourPassword;"
    
    ' 定义要执行的SQL查询
    sqlStr = "SELECT * FROM YourTableName;"
    
    ' 创建连接和记录集对象
    Set conn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
    
    On Error GoTo Cleanup ' 错误处理
    conn.Open connStr ' 自动用凭据登录,无弹窗
    rs.Open sqlStr, conn ' 执行查询
    
    ' 将结果写入Sheet1的A1起始位置
    Sheet1.Range("A1").CopyFromRecordset rs
    
Cleanup:
    ' 关闭并释放资源
    If Not rs Is Nothing Then rs.Close
    If Not conn Is Nothing Then conn.Close
    Set rs = Nothing
    Set conn = Nothing
End Sub

方法2:给Access传递查询配置带凭据的连接

如果你习惯用Access的传递查询,也能通过VBA修改它的连接属性,嵌入凭据后直接运行:

Sub RunPassThroughQueryWithCredentials()
    Dim qdf As QueryDef
    Dim connStr As String
    
    ' 获取你的传递查询对象(替换成实际查询名称)
    Set qdf = CurrentDb.QueryDefs("YourPassThroughQueryName")
    
    ' 设置带凭据的ODBC连接字符串
    connStr = "ODBC;Driver={SQL Server};Server=YourServerName;Database=YourDatabaseName;" & _
              "Uid=YourUsername;Pwd=YourPassword;"
    
    qdf.Connect = connStr ' 更新传递查询的连接配置
    qdf.ReturnsRecords = True ' 如果查询需要返回结果,设为True
    
    ' 运行查询并处理结果
    Dim rs As Recordset
    Set rs = qdf.OpenRecordset()
    Sheet1.Range("A1").CopyFromRecordset rs
    
    ' 释放资源
    rs.Close
    Set rs = Nothing
    Set qdf = Nothing
End Sub

重要安全提示

直接在代码里硬编码用户名和密码存在安全隐患——任何能查看你VBA代码的人都能获取到凭据。如果是企业内部环境,优先使用Windows集成身份验证,只需把连接字符串改成这样:

connStr = "Provider=SQLOLEDB;Server=YourServerName;Database=YourDatabaseName;Trusted_Connection=SSPI;"

这种方式会直接用你当前登录Windows的身份访问SQL Server,无需输入凭据,安全性和便捷性都更高。

内容的提问来源于stack exchange,提问作者Halen Lakes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:07:25