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

Excel SQL Server查询凭据配置:连接字符串、Power Query及VBA实现咨询

解决Excel Power Query连接SQL Server自动传递凭据的方案

一、直接在连接字符串中添加凭据(针对原生SQL Server连接)

你当前的连接字符串是Power Query的内部封装连接(Provider=Microsoft.Mashup.OleDb.1),这类字符串无法直接添加SQL Server的用户名和密码。如果要通过连接字符串传递凭据,需要改用SQL Server原生的OLE DB/ODBC连接字符串,示例如下:

Provider=SQLOLEDB.1;Data Source=你的SQL服务器地址;Initial Catalog=目标数据库名;User ID=SQL用户名;Password=SQL密码;

注意:这种方式会明文存储密码在连接字符串中,存在安全风险,不建议在共享文件中使用。

二、在Power Query编辑器中配置凭据(推荐)

这是最安全且便捷的方式,配置后凭据会加密存储,无需手动输入:

  • 打开Excel,点击数据选项卡 → 获取数据 → 数据源设置
  • 在弹出窗口中找到你的SQL Server数据源,点击编辑
  • 在连接设置界面,点击凭据,选择数据库身份验证,输入SQL Server的用户名和密码
  • 选择保存(凭据会加密存储在Excel文件或本地凭据管理器中,取决于你选择的保存位置)
  • 保存Power Query设置后,下次打开文件或刷新数据时,会自动使用已配置的凭据,无需手动输入

三、通过VBA传递凭据

如果需要更灵活的控制,可以用VBA实现两种方式:

方式1:修改Power Query连接的凭据

通过VBA直接修改Power Query的数据源凭据,示例代码:

Sub SetPowerQueryCredentials()
    Dim conn As WorkbookConnection
    Dim mConn As Object ' MashupConnection
    
    Set conn = ThisWorkbook.Connections("Query1") ' 替换为你的连接名称
    Set mConn = conn.OLEDBConnection.MashupConnection
    
    ' 修改数据源的凭据(需先确认数据源的连接字符串格式)
    mConn.CommandText = "let Source = Sql.Database(""SQL服务器地址"", ""数据库名"", [Username=""你的用户名"", Password=""你的密码""]) in Source"
    conn.Refresh
End Sub

注意:M代码中直接写密码存在安全隐患,建议结合VBA的加密存储功能(比如将密码加密后存在单元格或文件中,运行时解密)。

方式2:用ADODB直接连接SQL Server并导入数据

绕过Power Query,直接用VBA通过ADODB连接SQL Server,将查询结果导入Excel,示例代码:

Sub ImportSQLDataWithCreds()
    Dim conn As Object
    Dim rs As Object
    Dim sqlStr As String
    Dim ws As Worksheet
    
    Set ws = ThisWorkbook.Sheets("Sheet1") ' 替换为目标工作表
    sqlStr = "SELECT * FROM 你的表名" ' 替换为你的查询语句
    
    ' 创建ADODB连接
    Set conn = CreateObject("ADODB.Connection")
    conn.ConnectionString = "Provider=SQLOLEDB.1;Data Source=SQL服务器地址;Initial Catalog=数据库名;User ID=用户名;Password=密码;"
    conn.Open
    
    ' 执行查询
    Set rs = conn.Execute(sqlStr)
    
    ' 将结果导入工作表
    ws.Range("A1").CopyFromRecordset rs
    
    ' 关闭连接
    rs.Close
    conn.Close
    Set rs = Nothing
    Set conn = Nothing
End Sub

内容的提问来源于stack exchange,提问作者Dane Cameron

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 23:43:14