gpt4 book ai didi

registry - 在常规帐户下调用 VB6 dll 方法的 VBA 代码会出现 ODBC 驱动程序错误,但在以管理员身份运行时有效

转载 作者:行者123 更新时间:2023-12-05 07:24:31 25 4
gpt4 key购买 nike

我在 Word 2016 中打开了一个引用 VB6 dll 的 Word 模板 (.dot)。当我使用我的常规用户帐户运行 VBA 代码时,我收到一条错误消息。当我在我的管理员帐户下运行它时,我没有收到错误。错误发生在引用对象的“Load()”方法调用上:

Dim m_Manager As New PrefixService.Manager
Call m_Manager.Load(subjectID, ClientID)

准确的错误是:

Run-time error '-2147467259 (80004005)': [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

我做了一些研究,但我在陌生的领域。我一直在阅读有关注册表和 ODBC 的内容。 PrefixService.Manager 在注册表中有一个条目,用户可以读取它。至于 ODBC 数据源管理员,我不确定要查找什么,但搜索结果提到连接字符串和 Microsoft Access 很多,尽管我不确定它们与我引用 dll 并从中执行代码有什么关系。已安装 Microsoft Access 2016。我在 WINWORD 进程上运行了 Windows Sysinternals ListDlls 命令,发现 dll 从未加载过,但是,在我的管理员帐户下,我可以看到 dll 已加载。在 ODBC 数据源管理器中,我运行了一个跟踪,但不幸的是我不会说 ODBC 并且发现它很难理解。我相信以下部分包含有关该问题的信息:

o "u"           1260-ca4    ENTER SQLDriverConnectW 
HDBC 0x0BA01850
HWND 0x00000000
WCHAR * 0x5A768B34 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x5A768B34
SWORD -3
SWORD * 0x00000000
UWORD 0 <SQL_DRIVER_NOPROMPT>

o "u" 1260-ca4 EXIT SQLDriverConnectW with return code -1 (SQL_ERROR)
HDBC 0x0BA01850
HWND 0x00000000
WCHAR * 0x5A768B34 [ -3] "******\ 0"
SWORD -3
WCHAR * 0x5A768B34
SWORD -3
SWORD * 0x00000000
UWORD 0 <SQL_DRIVER_NOPROMPT>

DIAG [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0)

o "u" 1260-ca4 ENTER SQLGetDiagRecW
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 0x0BA01850
SQLSMALLINT 1
SQLWCHAR * 0x0036E93C
SQLINTEGER * 0x0036E514
SQLWCHAR * 0x0036E53C
SQLSMALLINT 512
SQLSMALLINT * 0x0036E524



o "u" 1260-ca4 EXIT SQLGetDiagRecW with return code 0 (SQL_SUCCESS)
SQLSMALLINT 2 <SQL_HANDLE_DBC>
SQLHANDLE 0x0BA01850
SQLSMALLINT 1
SQLWCHAR * 0x0036E93C [ 5] "IM002"
SQLINTEGER * 0x0036E514 (0)
SQLWCHAR * 0x0036E53C [ 91] "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"
SQLSMALLINT 512
SQLSMALLINT * 0x0036E524 (91)

除了它似乎是基于权限之外,我现在不知所措。哦,操作系统是 Windows 7 Enterprise

最佳答案

来这里说我有相同的错误代码 -2147467259 (80004005)事实证明,我的用户运行的旧 Excel 工作表仅与 Office x86 兼容

我用 Office 2019 x64 制作了一个新服务器 - 当我将 office 重新安装到 x86 时,宏运行良好

ODBC 实例以 x32 和 x64 表示。

所以检查你是否有 x64 和 x86 问题:)

关于registry - 在常规帐户下调用 VB6 dll 方法的 VBA 代码会出现 ODBC 驱动程序错误,但在以管理员身份运行时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55385551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com