0

我有一个数据库(dbW,我们称之为),它需要从从主员工数据库(dbEMP)导出的两个表中访问员工信息我们不希望员工正在运行的 dbW 可以访问 dbEMP 来查看所有信息,因此将非敏感信息(Clock#、FirstName、LastName、Foreman、HireDate、Shift)导出为一对 .dbf 文件。“ employee.dbf ”和“ FRM.dbf

直到最近,HireDate 才被导出。我进行了第三个导出查询以从 dbEMP 导出以创建“ employee2.dbf ”以包含 HireDate,原始查询被称为“ employee.dbf ”。(为什么?因为我不会进入这里的原因)

现在,在我的 dbW 前端,我有很多代码已经引用了“ employee.dbf ”。所以,在我的一点惊人的天才中(或者是吗?)我决定将这两个链接表重命名为“ employeeOLD ”,它仍然指向链接表employee.dbf ”和“ employee ”,它指向链接表employee2”。 dbf ",并包含 HireDate 的额外字段。

我在我的工作站上运行并测试它。一切运行良好。我不需要在代码中重建或做任何查找/替换的东西,它只是引用正确的表并工作。

我将运行时的副本发送给运行它的一名员工,但它已损坏。运行时错误 3061。这是什么?通常它是拼写错误的字段名称或缺少的字段。但它在我的电脑上工作,所以出了什么问题?

经过大量修改后,msgbox 在 VBA 中中断等,让我知道进程在无法访问代码或即时窗口的 PC 上的运行时版本中的位置,我终于弄明白了。尽管代码说它正在查看名为“ employee ”的表,但它实际上正在查看链接表employee.dbf ”,它在我的程序中重命名为“ employeeOLD ”。我想为了让它查看链接表employee.dbf ”中的数据,我必须参考“ employeeOLD ”" 在 VBA 代码中。事实证明,即使我将文件重命名为代码中已有的内容的天才之举在完整版本上工作,我仍需要将其全部重新编程以引用 " employee2 "(它甚至没有出现在左侧的表列表中,除非您查看链接表的文件名)以使运行时版本正常工作。

最后,我回到 dbEMP,不再导出两个版本的员工,只导出现在包含 HireDate 字段的“ employee.dbf ”,并且我删除了任何与employee2 表的链接,并且Access 中的表名相同作为文件服务器上的表名(当然要减去 .dbf)

所以,我的问题是自我解决的,但我仍然发布这个并询问其他人是否遇到过这个问题,或者他们是否可以复制这个问题。

4

1 回答 1

1

答:不要重命名链接表。VBA 代码似乎仍在寻找原始名称。

如果您有更好或更彻底的答案,请发布。

于 2015-07-02T15:40:03.877 回答