将Access 2007 accdb编译为accde

时间:2009-08-19 15:17:40

标签: ms-access ms-access-2007 access-vba

我正在尝试使用内置的Make ACCDE功能进行访问,以创建一个与SQL-Server 2008后端接口的独立应用程序。当我运行Make ACCDE时,我收到一条错误,指出正在使用太多的TableID引用(规定限制大约为2048)。

通过反复试验(删除表格直到编译)我发现哪种形式导致问题。如果我从表单中删除所有VBA代码,似乎可以编译。

我想知道是否有人之前遇到过此问题,是否存在导致此问题的特定问题?我现在已经遇到过这个问题了几次,通过我的代码删除其中的一半来查找错误的位置真的很痛苦。

2 个答案:

答案 0 :(得分:3)

对于将来的编码,您应该确保遵循良好的编码实践:

  1. 在VBE选项中,关闭COMPILE ON DEMAND并确保REQUIRE VARIABLE DECLARATION打开(这将导致默认情况下使用OPTION EXPLICIT创建新模块)。

  2. 将编译按钮添加到VBE中的工具栏,以便于访问。编码时,在每几行代码后点击编译按钮(并在每次编译后保存)。这将阻止您编写太多无法编译的代码行,因此更容易修复它们以便编译。

  3. 定期备份数据库并反编译并重新编译。这将清除已编译的p代码中累积的任何crud(反编译剥离所有已编译的p代码并仅留下规范代码文本),并可清除之前被损坏的p代码隐藏的编译错误。 / p>

  4. 通过遵循这些最佳实践,您几乎不会遇到代码损坏。

答案 1 :(得分:0)

我偶尔会看到类似的错误。我建议将所有对象导入新的ACCDB。紧凑型修复只清理表和索引,对其他对象的损坏诊断或清理没有太大作用。

如果您确实将其与某个特定表单隔离,请尝试复制并粘贴表单。这应该足以让Access保存表单的干净副本。

下次你遇到这个,虽然你可以记录确切的错误信息,包括号码,并发送电子邮件给tony at granite.ab.ca。我想将此添加到我的损坏网页的此类错误列表中,因为这似乎是Access 2007特定消息。