Excel VBA向PostgreSQL传数据报ODBC驱动错误,配置数据源仍无效求解决
解决Excel VBA连接PostgreSQL时的ODBC驱动错误
可能的原因及解决步骤
1. 检查Excel与ODBC驱动的位数匹配
- 打开Excel,点击「文件」→「账户」→「关于Excel」,确认Excel是32位还是64位。
- 必须安装同位数的PostgreSQL ODBC驱动:
- 若为32位Excel,即使系统是64位,也要安装32位驱动,且需通过
C:\Windows\SysWOW64\odbcad32.exe打开ODBC数据源管理器配置(别用控制面板默认的64位管理器)。 - 若为64位Excel,安装64位驱动,通过
C:\Windows\System32\odbcad32.exe配置数据源。
- 若为32位Excel,即使系统是64位,也要安装32位驱动,且需通过
2. 修正连接字符串的驱动名称
- 打开对应位数的ODBC数据源管理器,切换到「驱动程序」标签,复制PostgreSQL驱动的精确名称(比如可能是
PostgreSQL ANSI(x64)或PostgreSQL ODBC Driver(ANSI))。 - 将VBA代码中连接字符串的
DRIVER={...}部分替换为该精确名称,示例:Conexao.ConnectionString = "DRIVER={PostgreSQL ANSI(x64)}; SERVER=localhost; DATABASE=yyyy; UID=marcel; PASSWORD=xxx;"
3. 改用已配置的DSN连接(更可靠)
既然你已在ODBC管理器中配置了测试成功的数据源,可直接用DSN连接字符串替代手动指定驱动,避免名称错误:
Sub Conectar_BD() Dim Conexao As ADODB.Connection Set Conexao = New ADODB.Connection ' 替换为你配置的DSN名称 Conexao.ConnectionString = "DSN=你的DSN名称;UID=marcel;PASSWORD=xxx;" Conexao.Open End Sub
4. 重新安装驱动(若上述步骤无效)
- 卸载现有PostgreSQL ODBC驱动,下载对应位数的官方驱动重新安装(注意区分ANSI和Unicode版本,二者名称不同)。
- 安装完成后,再次打开对应位数的ODBC管理器,确认驱动已出现在列表中。
内容的提问来源于stack exchange,提问作者Marcel
相关产品推荐
相关产品推荐

