【问题标题】:Microsoft Access: running "safe" mode (i.e. allow changes to be reverted)Microsoft Access:运行“安全”模式(即允许还原更改)
【发布时间】:2013-08-03 04:24:11
【问题描述】:

我使用 Microsoft Access 作为管理数据(过去存储在电子表格中)的一种方式,以一种更加表格、有序和合乎逻辑的方式。对我的客户来说,一切似乎都很好,但她有一个问题:“是否有一种允许还原更改的模式?假设我做了一些更改,我想恢复到我原来的版本,可以吗?”

我理解她的担忧,并且我想说“这就是数据库的工作原理;您对一行进行更改,它们会立即写入该行”,我可以不要让自己说出来。她一直在使用 MS Excel,Excel 能够撤消多项更改,如果您还没有保存它,还可以恢复到原始文件。对我来说,我觉得她害怕Access会带来灾难性的后果——有一天她有点昏昏沉沉,开始到处乱改,然后她就拿不回原来的文件了。 砰。

我现在要问的是:是否有任何方法/设置允许 Access 不立即提交更改,也许 直到用户单击了某个按钮或其他内容? strong> 这不是 Access 的工作方式,请不要让我回到旧的 Excel,因为我喜欢并欣赏 Access 的 WYSIWYG 界面及其熟悉的数据库环境。也许不是这种行为,它是与数据库一起出现的。

【问题讨论】:

  • 听起来你必须建立一个历史。这是一个需要解决的重大问题。什么是后端(例如,表是存储在 Access 中,还是指向... SqlServer 的链接)?是否保证一次只有一个用户?
  • 不使用 SQL Server,我使用的是默认数据库(猜它是 Access DB?)。实际上,一次只会有一个用户,我想多用户的想法从未出现在我的客户的脑海中

标签: ms-access transactions ms-access-2010 undo revert


【解决方案1】:

如果您正在寻找一个简单的设置来保留历史记录,或者启用撤消或强制将所有更改封装在显式事务中,那么您就不走运了,因为 Access 没有提供这些开箱即用的功能。

然而,有一些方法可以在不同程度上实现所有这些功能,从simple confirmation whenever the records are about to be changed 创建所有更改的日志(以便用户至少可以看到更改的内容),到在修改之前复制记录,等等

撤消操作可能很简单,例如恢复您刚刚键入的值,但如果您想撤消创建或修改数据库中其他地方的十几个其他记录的操作,它可能会很快变得非常麻烦。 如果在此之后执行了其他操作(例如由连接到数据库的其他用户),则变得特别困难。

但是,有几件事可以帮助您:

  1. 您可以跟踪表单中的所有更改并保留操作日志(在另一个表中或仅在文本文件中):

  2. 您可以使用Access 2010 data macros 自动触发某些操作(例如复制记录或跟踪更改),只要有内容更新或添加到数据库。

  3. 您可以在未绑定模式下使用所有表单,并在表单打开(或更改记录)时手动设置数据,并仅在用户完成时将其保存回数据库。

所有这些方法都需要工作和测试,并且需要适应您希望为用户提供的体验。

您可以做的另一件事是定期复制数据库作为备份,这样,如果出现问题,您并没有丢失所有内容(无论如何这是强制性的,我总是至少有一个每日备份系统)。

【讨论】:

    猜你喜欢
    • 2020-06-03
    • 2020-05-26
    • 2016-12-15
    • 2012-11-19
    • 2015-12-29
    • 2018-04-19
    • 2015-10-18
    • 1970-01-01
    • 2013-08-07
    相关资源
    最近更新 更多