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

如何通过VBA的ADODB连接Azure Databricks集群并操作数据库?

可以通过VBA的ADODB连接Azure Databricks并执行数据操作,具体实现方案如下:

前置准备

  • 安装与你的Office位数(32/64位)匹配的Azure Databricks ODBC驱动,安装完成后可以在Windows ODBC数据源管理器的「驱动程序」选项卡中确认驱动名称。
  • 获取Databricks集群连接信息:进入Databricks工作区对应集群的「JDBC/ODBC」配置页,记录以下参数:
    • 服务器主机名
    • HTTP路径
    • 在用户设置中生成个人访问令牌(PAT,后续作为连接密码使用)

VBA连接实现

连接串将原来SQL Server的配置替换为Databricks专属配置即可,示例代码如下:

Sub DBRegister()
    Dim MDB             As New ADODB.Connection
    Dim RS              As New ADODB.Recordset
    Dim FD              As ADODB.Field
    Dim SQL             As String
    Dim w               As Worksheet

    ' 连接串参数按实际情况替换
    Dim connStr As String
    connStr = "Driver={Databricks ODBC Driver};" & _
              "Host=你的集群主机名;" & _
              "Port=443;" & _
              "HTTPPath=你的HTTP路径;" & _
              "UID=token;" & _
              "PWD=你的个人访问令牌;" & _
              "Schema=你要操作的数据库名;" & _
              "SparkServerType=3;" & _
              "ThriftTransport=2;" & _
              "SSL=1;"
    
    ' 打开连接
    MDB.Open connStr

    ' 后续数据操作逻辑和SQL Server场景一致,执行INSERT语句即可
    ' 示例:插入单条数据
    SQL = "INSERT INTO 表名(字段1,字段2) VALUES('值1', '值2')"
    MDB.Execute SQL

    ' 用完关闭连接
    MDB.Close
    Set MDB = Nothing
End Sub

工作表新增数据同步实现

要实现Excel插入新数据时自动同步,可以用工作表的Worksheet_Change事件触发插入逻辑:

  1. 打开目标工作表的代码编辑页,添加Worksheet_Change事件监听
  2. 判断变更的单元格是否属于你要同步的数据区域,排除表头、空值等无效变更
  3. 读取变更行的字段值,拼接参数化INSERT语句执行,避免SQL注入风险

注意事项

  • 连接前需要确保对应Databricks集群处于运行状态,集群终止时无法建立连接
  • 个人访问令牌不要明文硬编码在VBA代码中,建议存入受保护的单元格或提示用户每次输入,避免泄露
  • 如果需要批量插入大量数据,建议拼接多值INSERT语句,避免逐行执行影响效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:27:05