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

时间:2012-08-21 19:50:12

标签: vb6 odbc 32bit-64bit quickbooks

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

我正在查看其中一个示例文件,可在此处找到 - http://support.flexquarters.com/esupport/index.php?/Default/Knowledgebase/Article/View/506/57/examples-of-how-to-use-qodbc-via-visual-basic

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

知道这里发生了什么吗?在查看了知识库之后,我认为它可能与64位和32位有关......但这似乎并没有让我感到随心所欲。我确实安装了Visual Studio,但对VB6应用程序知之甚少,不知道我在做什么。

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

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

我最初使用的是与我链接的文章中相同的确切行,但这也没有用。我使用c:\​​ windows \ syswow64 \ odbcad32.exe创建一个名为“Ben Test 2”的32位DSN。它似乎没有任何改变。

2 个答案:

答案 0 :(得分:1)

请查看微软的网站,了解相关信息。 这不是VB问题,你怀疑是32/64位问题。

http://social.msdn.microsoft.com/Forums/en/sqlgetstarted/thread/702f0d9b-6cb9-49cf-9953-80d059711e60

答案 1 :(得分:1)

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

QODBC是32位驱动程序,可以使用32位应用程序。 64位应用程序无法与32位驱动程序通信,64位应用程序与32位驱动程序通信也是如此。

对于64位应用程序,请使用QRemote(这是一个64位驱动程序驱动程序)。

解决方案1 您可以尝试使用QRemote桥接QODBC和您的应用程序。这是一篇关于如何使用QRemote的文章: http://www.qodbc.com/qremoteconnect.htm

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

1)单击Windows开始

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

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

即使您使用的是64位计算机,这也会使您的VBS以32位模式运行

-Regards Rajendra Dewani