好的,我在MS Access数据库中有几百个报告(是的,这是一个很大的项目,是的,我们应该切换到SQL Server)。昨天我正在处理其中一个报告,并突然断开网络连接。我在工作中遇到了很多网络中断,我认为这与所有报告的突然消失有关。我从来没有管理员权限在我的机器上设置备份和还原,并且必须自己手动备份数据库。
我最近的版本是从一周前开始的,但从那以后我做了很多工作。我的问题是,是否突然断开网络(以及随后我正在使用的数据库)可能导致删除,以及是否可以在未设置备份和还原的情况下还原数据库我的电脑。
请帮忙。
编辑:我的数据库采用前端/后端格式。前端数据库(包含报告,查询和表单)崩溃了,但删除的唯一项目是报告。
答案 0 :(得分:0)
您的数据库已损坏一次,很难判断是否可以从中恢复丢失的报告。
恢复更改的唯一100%安全方法是在损坏发生之前进行最近的备份。
但是,当用户访问数据库和同时在报告中进行更改时,网络中断肯定是可能的,导致文件损坏。
我知道它现在对你没有帮助,但这是对未来的一些建议:
您应该考虑将Access数据库拆分为前端(包含表单,报表和代码)和后端(仅包含表)。
后端将位于中央计算机上,每个用户都有自己的前端副本。
当然,拆分数据库并确保在用户的计算机上自动更新前端需要一些初步工作,但您将从中获得两个好处:
另外,即使您无法在计算机上设置备份和还原,也应该更频繁地备份工作。我通过手动复制Access数据库每天做几次这样做(一旦你习惯了,你就会自动完成这一过程。)
修改强>
好的,问题并不是很清楚你的数据库 分为前端和后端。
网络中断的东西使我认为你正在编辑“唯一的中央数据库”。
我不记得我曾经经历过这样的事情,所以我可以猜测你能做什么现在。
我想到的一件事是,您可以尝试将报告(假设您知道他们的名字)导出到带有未记录的SaveAsText
和LoadFromText
命令的文本文件中:
'save your report in a text file on your disk
Application.SaveAsText acReport, "YourReport", "c:\YourReport.txt"
'load your report from the text file in another Access database
Application.LoadFromText acReport, "YourReport", "c:\YourReport.txt"
但这只是一个想法,所以我不知道这是否适用于你的情况 也许报告仍然存在(并且由于某种原因没有显示),那么它可能会起作用。
我很遗憾再次这样说,但是:
老实说,我在修复损坏的数据库方面没有很多经验(不是Access,也没有SQL Server,我负责工作!)因为我非常努力从不进来像你这样的情况经常进行备份。 很多他们(由于这个原因,我被同事称为“偏执狂”)。
编辑2:
我刚刚在你的评论中读到phoog的答案,即损坏的数据库在网络上(即你在网络上编辑它时)。
对未来的建议:
不要这样做,因为phoog在他的回答中已经提到过。如果数据库已经拆分为前端和后端,请复制前端并在本地计算机上对其进行编辑,以防止此类事件再次发生。
另外,如果多个用户使用带有报告的前端,请不要让它们全部在网络上的同一文件上工作(出于同样的原因)。
为每个用户提供他自己的副本非常容易,包括在有新版本的前端时自动更新。
你可以在这里读到我在工作中如何做这件事:
How to automatically update MS-Access 2007 application
答案 1 :(得分:0)
你的问题留下了几个重点:
您的应用程序是如何设置的? MDB是否包含网络上的报告? 这些表是在同一个文件中还是另一个? 如果表位于另一个文件中,它位于何处?
当网络连接不稳定时,访问很容易受到数据丢失和文件损坏的影响。有关详细信息,请参阅http://support.microsoft.com/kb/303528(“网络环境的其他最佳做法”部分)。
本文中的信息(“如何排除故障并修复损坏的Access 2002或更高版本的数据库”http://support.microsoft.com/kb/283849)可能有所帮助
网络上的任何文件都应该由网络管理员备份,因此请在丢失报告之前向他们询问最新的备份。幸运的是,这将比您最近的备份更新。