我有一个数据库(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 “和”员工“指向链接表” employee2.dbf “,并包含额外字段HireDate。
我运行它并在我的工作站上测试它。一切都运行良好。我不需要在代码中重建或执行任何查找/替换,它只是引用正确的表并且有效。
我将运行时的副本发送给运行它的一个员工,但它已经坏了。运行时错误3061.这是什么?通常,它是拼写错误的字段名称或缺少字段。但它在我的电脑上工作,所以有什么不对?
经过大量修改后,msgbox在VBA中断,这样让我知道在无法访问代码或即时窗口的PC上运行时版本中的进程位置,我终于明白了。即使代码说它正在查看名为“员工”的表,但它实际上是在查看链接表“ employee.dbf ”,这是在我的计划中重命名为“ employeeOLD ”。我想是为了让它看一下链接表“ employee.dbf ”中的数据,我必须参考“ employeeOLD “在VBA代码中。事实证明,即使我的天才将文件重命名为完整版上的代码中已经存在的内容,我还是需要将其全部重新编程为“ employee2 ”(这甚至都没有出现在左侧的表列表中,除非您查看链接表的文件名)以使运行时版本正常工作。
最后,我回到dbEMP并且不再导出两个版本的员工,只有“ employee.dbf ”现在包含HireDate字段,并且我已删除任何链接到employee2 Access中的表和表名与文件服务器上的表名相同(当然减去.dbf)
所以,我的问题是自我解决的,但我仍然发布这个问题并询问其他人是否遇到过这个问题,或者他们是否可以复制这个问题。
答案 0 :(得分:1)
答案:不要重命名链接表。 VBA代码似乎仍然在寻找原始名称。
如果您有更好或更全面的答案,请发帖。