ADO 记录集打开时访问编译错误 - 可能的参考问题?
Posted
技术标签:
【中文标题】ADO 记录集打开时访问编译错误 - 可能的参考问题?【英文标题】:Access Compile Error on ADO recordset open - possible reference issue? 【发布时间】:2011-09-20 05:27:14 【问题描述】:作为背景知识,我们是一家小型 Access 软件公司,与 150 多个客户站点合作了 10 多年。我们有 5 个不同的应用程序。我们的主要产品有超过30,000行vba和大约400个表格和报告。我告诉你这个背景,因为我们认为我们知道我们的 vba 和访问。我们通常在 Access 2003 中工作,但在 Access 2k 中编译和分发,偶尔我们会在 Access 2002 、2007 和 2010 中工作。
我们遇到了一个问题,在过去一周左右,我们的一些(不是全部)应用程序不允许我们在某些机器上编译。上周我们遇到了一个 windows7 盒子的问题,其中 Access 2003 经常崩溃(这似乎在 XP 机器上编译时自行纠正,并且只能在 Access 2k 中工作),本周第二个 win 7 盒子出现问题特定的应用程序(不会编译 - 打开 ADO 记录集时出错)。这似乎是在安装 Access 2010 之后开始的。现在这似乎已经“传播”到其他机器上。
我们认为这很可能是 ADO 引用问题,但它很奇怪,因为其他应用程序与在同一台 PC 上具有相同引用且相同代码行编译的其他应用程序正常。
到目前为止,我们已经尝试过,所有机器都使用了最新的 MS 补丁。我们已经卸载并重新安装了各种版本的访问。它似乎更糟(并且从 Win 7 开始),但我们现在有一个无法在 XP Pro 或 Vista 上编译的版本。其中一些机器我们已经使用了 4 或 5 年,并且没有出现此类问题。感谢您的反馈。
【问题讨论】:
看看这是否有帮助:allenbrowne.com/bug-17.html 【参考方案1】:这听起来很像在安装了 SP1 的 Windows 7 64 位上编译所导致的问题。这会导致代码无法在没有 64 位 Windows SP1 的机器上运行。
解决方案是在 Windows 7 64 位的 SP1 之前的安装上进行编译。
而且,是的,这是一个可怕的问题。
【讨论】:
【参考方案2】:感谢您的回答 - 我们认为这不是补丁级别,因为我们不会同时升级所有机器 - 它可能与 Access 2010 以及对 ADO 的相关引用有关,尽管我们没有能够证明这一点。
无论如何,对于将来遇到此问题的任何其他人,我们已经解决了该问题,方法是采用另一个(完全不同的)正确编译的应用程序,删除所有对象(表单、报告等)并从其中复制所有对象没有编译到(现在为空的)应用程序。谢天谢地,重新编译现在可以正常工作了。
【讨论】:
这是对我评论的回复,应该在此处发布,而不是作为答案。您所描述的内容与 SP1 问题完全一样,因为它是对导致问题的 ADO 的引用。 MS 提供的两种解决方案是在没有 SP1 的机器上编译,或者使用带有后期绑定的 ADO。以上是关于ADO 记录集打开时访问编译错误 - 可能的参考问题?的主要内容,如果未能解决你的问题,请参考以下文章