我有一个已经使用多年的访问数据库,从Access 2000转换到2007并且很好。在过去的几周里,它一直做着奇怪的事情!
有一个表格用于编辑'一个记录。当用户点击按钮打开此表单时,会出现一个小白框并说“已删除记录”。
之后,数据库已损坏。我支持这个数据库,我甚至无法在设计视图中进入它。当我尝试打开它时(打开它时按住shift键),需要一段时间,然后它会显示具有空白数据库的访问设计页面'图标和右侧列出了频繁打开的数据库。
所以,我甚至无法获得对象。我唯一的选择是从前一晚的备份中恢复。这意味着用户失去了当天的所有工作。今天,一周后,又发生了一次。所有用户的工作都丢失了,因为我必须从备份恢复。
我不知道从哪里开始麻烦拍摄,因为当它已经损坏时我无法在设计视图中进入它。寻找任何调试此建议。我可以使用我已恢复的数据库的副本。
由于
答案 0 :(得分:0)
作为第一个也是最重要的建议。您应该拆分数据库。您可以从顶部的数据库工具选项卡执行此操作。通过执行此操作,您将独立于前端的单独后端,并且您的客户端不会丢失任何数据,就像它们获得错误/损坏的数据库一样,它不会影响后端中保护的数据
其次我没有完全相同的错误,但在过去我遇到过表格不起作用的情况。我在某处读到的建议是创建一个新的空白表单并将此表单中的元素复制到该表单上并删除此表单。我怀疑VBA是否有任何问题,但值得编译代码进行检查。
道歉,如果这没有多大帮助,但我希望第一个建议有助于保护您的数据库崩溃的实例中的客户端数据。
答案 1 :(得分:0)
首先,检查是否有任何自动VBA代码或宏在故障排除表单的OnOpen,OnLoad,OnCurrent,AfterUpdate,OnDirty等事件上运行。只需打开VBA窗口并查看特定表单模块上的代码即可。或者在宏的情况下,在设计视图中打开表单并检查属性表的“事件”选项卡(对于特定按钮,文本框等,也是如此)。当用户与表单控件交互时,可能会出现DoCmd.RunCommands。
此外,如果您发现自己无法打开表单或处理损坏的数据库,请考虑从空白的Access .accdb文件开始,并从以前的Access 2000 .mdb文件中导入所有对象。如果特定控件无法正常运行,请根据需要重新创建它们。
如上所述,在BackEnd(仅限表)和FrontEnd(表单,查询,宏,模块)之间拆分数据库以防止损坏,有效地运行系统,因为只有数据通过网络而不是整个应用程序项发送,并且整体培养更好的多用户环境。每个用户都可以在本地计算机上拥有FE的副本,但所有用户都将连接到共享网络上的一个BE。为了提供帮助,Access 2007-2013在数据库工具下的功能区上有一个按钮。