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

Autodesk Inventor中VBA连接PostgreSQL报错求助(Excel可正常运行)

问题解答:Autodesk Inventor VBA连接PostgreSQL报错的原因及解决方法

这个ADODB连接PostgreSQL的方法并非仅适用于Excel,Autodesk Inventor的VBA环境完全支持ADODB组件。报错的原因大概率是以下几个环节的差异,而非方法本身的兼容性问题:

  • 32/64位兼容性不匹配
    Inventor的位数(32/64位)必须和PostgreSQL ODBC驱动的位数完全一致。如果Excel是32位,搭配32位驱动能正常运行,但Inventor是64位的话,就会因为驱动位数不兼容报错。
    解决:

    1. 查看Inventor位数:点击顶部菜单「帮助」→「关于Autodesk Inventor」确认;
    2. 安装对应位数的PostgreSQL ODBC驱动;
    3. 配置对应位数的ODBC数据源(64位系统需注意:控制面板里的「ODBC数据源(64位)」对应64位程序,「ODBC数据源(32位)」对应32位程序)。
  • Inventor运行权限不足
    Inventor可能没有足够权限访问ODBC驱动文件或PostgreSQL数据库。比如普通用户权限运行Inventor时,无法读取驱动安装目录的文件,或者数据库用户TEST没有连接目标库的权限。
    解决:

    1. 右键Inventor图标,选择「以管理员身份运行」重试;
    2. 在PostgreSQL中检查TEST用户权限,确保其拥有CONNECT权限及目标数据库的访问权限。
  • DSN配置的上下文差异
    你使用的用户DSN仅对当前登录用户可见,如果Inventor运行在不同用户上下文(比如管理员用户),会找不到该DSN;而Excel和Inventor可能使用了不同的用户上下文。
    解决:

    1. 将DSN配置为系统DSN,确保所有用户都能访问;
    2. 改用无DSN的直接连接字符串,避免依赖DSN配置(驱动名称需和实际安装的一致):
      oConn.Open "Driver={PostgreSQL Unicode(x64)};" & _
        "Server=" & strServerAddress & ";" & _
        "Database=" & strDatabase & ";" & _
        "Uid=" & strUsername & ";" & _
        "Pwd=" & strPassword
      
      若为32位驱动,驱动名称改为{PostgreSQL Unicode}。
  • ADODB组件版本差异
    虽然你确认了项目引用一致,但Inventor和Excel可能加载了不同版本的ADODB库。比如Excel使用的是最新版msado15.dll,而Inventor默认加载了旧版本组件。
    解决:在Inventor的VBA编辑器中,点击「工具」→「引用」,勾选最新版本的ADO库(如「Microsoft ActiveX Data Objects 6.1 Library」),并移除旧版本的引用。

内容的提问来源于stack exchange,提问作者G.H.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:05:20