Excel 365 2409更新后PostgreSQL连接报错:ConnectionString应用名称异常
问题描述
- Excel 365 2408版本及之前,所有VBA代码可正常运行;2024年9月更新至2409版本后,通过VBA修改Power Query的SQL字符串并刷新PostgreSQL连接时,触发如下错误:
Expression.Error: key=value argument incorrect in ConnectionString Parametername: application name
- 未主动在任何
ConnectionString中设置过application name参数,仅通过VBA从工作簿单元格构建SQL字符串 - 尝试查找
ConnectionString及导出rdp文件后,均未发现application name相关配置 - 连接构建方式:通过Excel新建连接功能创建PostgreSQL连接(已安装适配驱动),后续使用VBA修改Power Query表达式中的SQL字符串,代码如下:
ThisWorkbook.Queries(["SQL_string"]).Formula = Querystring ThisWorkbook.Connections(9).Refresh
解决方案
- 检查Power Query连接的底层配置
进入Power Query编辑器,找到对应的PostgreSQL连接,查看其高级选项或连接字符串详情。Excel 2409版本可能在后台自动为PostgreSQL连接添加了Application Name参数,但格式不符合驱动要求(比如包含特殊字符、空格未转义)。手动修正该参数的格式,或直接移除它。 - 在VBA中显式指定合规的ConnectionString
跳过依赖Power Query自动生成的连接,直接在VBA中构建完整且合规的PostgreSQL连接字符串,示例如下:Dim conn As Object Set conn = CreateObject("ADODB.Connection") conn.ConnectionString = "Driver={PostgreSQL Unicode};Server=your_server;Port=5432;Database=your_db;Uid=your_user;Pwd=your_pwd;" conn.Open ' 执行SQL并处理数据 conn.Close Set conn = Nothing - 回滚至Excel 2408版本
若临时需要恢复业务运行,可通过Office账户的更新历史,回滚到2408版本,等待微软修复该版本兼容问题。 - 更新PostgreSQL ODBC驱动
确保使用的PostgreSQL ODBC驱动为最新版本,部分旧驱动可能无法兼容Excel 2409新增的默认参数格式。
内容的提问来源于stack exchange,提问作者Stefan Lippitsch
相关产品推荐
相关产品推荐

