我创建了一个查询,当在表单中按下按钮时,它会从每条记录中删除一个部分。但我想要做的是,如果表中的某个部分已经为零,则无法按下按钮。例如,用户正在移除一个由 6 个部分组成的“套件”。但是用户没有意识到其中一个部分已经为 0。然后当他们按下按钮时,其他部分会减一。我怎样才能防止这种情况?
问问题
162 次
2 回答
2
当他们选择零件/套件时,您需要查询数据库以验证零件是否可用,然后相应地(取消)锁定按钮。您使用什么事件来执行此操作将取决于他们最初是如何挑选零件的。
另一种选择是将更新库存的查询包装在事务中,以便在其中一个部件不可用(或在事务期间变得不可用)时回滚它们。
虽然没有足够的信息来提供任何具体的例子,只是建议。
于 2012-09-13T14:22:30.140 回答
1
“用户正在移除一个由 6 个部分组成的‘工具包’。但用户没有意识到其中一个部分已经为 0。 ”
我认为你应该以不同的方式处理这个问题。如果给定套件的任何所需部件不可用,请不要让用户有机会按下该套件的命令按钮。
显然,您能够以某种方式确定“foo kit”由 6 个部分组成,以及这 6 个部分的标识。.Enabled
根据是否所有部件都可用于表单的当前套件,使用类似的逻辑来启用/禁用命令按钮(将其属性设置为 True 或 False)。或者更改表单的记录源,使其仅显示所有部件都可用的套件,并在每组部件移除后重新查询记录源。
如果其他用户可能同时更新部件,请按照 Omnikrys 的建议将表单的更新包装在事务中,以便在部件不可用时回滚尝试的更新集。
顺便说一句,您在评论中说“这些套件在单独的表格中。 ”乍一看,这听起来像是一个设计错误。但是,如果这确实是一个合理的决定,那么这项任务可能会更加复杂。:-(
于 2012-09-13T15:55:35.113 回答