Vb6 尝试运行.vbs文件以更新QB中的信息时出现QODBC错误80004005

Vb6 尝试运行.vbs文件以更新QB中的信息时出现QODBC错误80004005,vb6,odbc,32bit-64bit,quickbooks,Vb6,Odbc,32bit 64bit,Quickbooks,我已经设置了QODBC驱动程序,能够连接到我的QB文件并在VB Demo 32中运行查询 我正在查看一个示例文件,在这里找到- 我照本文所说的做了——将所有文本复制到一个文本文件中,并将其保存为“Customer.vbs”。我创建了一个名为“Kim Garland”的客户,关闭对话框,双击文件。msgbox从未显示,出现此错误消息-“[Microsoft][ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配;代码:80004005;来源:用于ODBC驱动程序的Micr

我已经设置了QODBC驱动程序,能够连接到我的QB文件并在VB Demo 32中运行查询

我正在查看一个示例文件,在这里找到-

我照本文所说的做了——将所有文本复制到一个文本文件中,并将其保存为“Customer.vbs”。我创建了一个名为“Kim Garland”的客户,关闭对话框,双击文件。msgbox从未显示,出现此错误消息-“[Microsoft][ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配;代码:80004005;来源:用于ODBC驱动程序的Microsoft OLE DB Provider”

知道这是怎么回事吗?在浏览了知识库之后,我认为这可能与64位vs 32位有关。。。但这似乎并没有让我有任何进展。我确实安装了VisualStudio,但对VB6应用的了解还不够,无法了解我在做什么

编辑
顺便说一下,给出错误的行是:

oConnection.Open "DSN=Ben Test 2;OLE DB Services=-2"

我最初使用的是我链接到的文章中的同一行,但这也不起作用。我使用c:\windows\syswow64\odbcad32.exe创建了一个名为“bentest2”的32位DSN。这似乎没有改变什么

请看一下微软的网站,他们在那里谈论这件事。 这不是VB问题,而是您怀疑的32/64位问题


由于您使用的是64位系统,您的VBS将以64位(默认情况下)执行

QODBC是32位驱动程序,可用于32位应用程序。64位应用程序不能与32位驱动程序通信,64位应用程序与32位驱动程序通信也是如此

对于64位应用程序,使用QRemote(64位驱动程序)

解决方案1 您可以尝试使用QRemote连接QODBC和您的应用程序。下面是一篇关于如何使用QRemote的文章:

解决方案2 还有另一个解决方案。请将VBS称为32位。请按照以下步骤操作:

1) 单击Windows开始

2) 单击运行,在窗口中键入“%windir%\SysWoW64\cmd.exe”

3) 单击确定,然后在cmd窗口中键入“cscript vbscriptfile.vbs”

这将使您的VBS在32位模式下运行,即使您在64位机器上

-问候
拉詹德拉·德瓦尼

谢谢。您确认这是一个32位vs 64位的问题激发了我的灵感,让我再尝试一件事,所以我将继续接受您的答案。实际上,我通过使用Qremote修复了它,Qremote是64位应用程序和32位驱动程序之间的桥梁。如果有人想在这个问题上得到帮助,我很乐意带你解决。请联系我。很有趣。。。这与QODBC支持人员给我的答案完全相同。字面上顺便说一下,我能够使这两种解决方案都起作用。如果您是从Excel宏调用它,请使用32位宏。