旧后端仍然在前端但仍然无法访问,无法更新它们

时间:2013-10-15 08:40:29

标签: database ms-access

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

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

例如,错误3022:

  

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

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

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

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

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

如何完全删除以前链接的所有痕迹?

1 个答案:

答案 0 :(得分:1)

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

  • 创建一个新的空.accdb文件
  • 将旧的前端文件中的所有查询,表单等导入到新的前端文件中,然后
  • 在新的前端文件中创建正确的表链接。