1

我的用户正在使用一个 Access 数据库,该数据库已分为前端 (DB.accdb) 和后端 (DB_be.accdb)。由于他们偶尔需要移动文件,因此我编写了一个函数来在启动时重新链接表。

现在,不知何故他们设法破坏了文件,我真的不知道如何。当为表调用 RefreshLink 函数时,总是会出现运行时错误(实际上是不同的错误)。

例如,错误 3022:

您对表请求的更改不成功,因为它们会在索引、主键或关系中创建重复值。更改包含重复数据的一个或多个字段中的数据,删除索引,或重新定义索引以允许重复条目,然后重试

我以独占模式打开前端,删除表并手动重新链接它们。但是 1 附加到他们的名字:someTable--> someTable1。似乎这些表已经存在?也许他们还在系统表中?由于重新链接会在此处插入链接表的名称,因此显然会有几个具有重复名称的表。

我打开了连接管理器,确实,它在我刚刚添加的新链接中列出了旧的、错误的链接。

  • 我无法刷新旧链接 - “重复值”等。
  • 我可以刷新新链接,但当然我不能重命名表(删除 1),因为具有这些名称的表已经存在。
  • 我也不能删除旧表,因为它们没有显示在侧边栏中!即使我打开“显示系统对象”等,它们也不会出现。
  • 我无法删除新链接,然后更新旧链接,因为连接管理器按钮是灰色的。大概 Access 认为没有表。

当我尝试压缩和修复数据库时,它再次使用旧链接......

我怎样才能完全删除以前链接的所有痕迹?

4

1 回答 1

1

为了从旧的前端数据库文件中的一些损坏中恢复,解决方案是

  • 创建一个新的空.accdb文件,
  • 将旧前端文件中的所有查询、表单等导入新文件,然后
  • 在新的前端文件中创建正确的表链接。
于 2013-10-15T12:56:53.620 回答