【发布时间】:2020-07-13 18:14:45
【问题描述】:
我有一个数据表表单,它使用户可以轻松选择所有记录并删除。我想写一个 VBA 代码来防止用户在选择超过 20 条记录时删除记录。然后我写了这段代码,但问题是每条记录都会触发消息。有人遇到过这个吗?请看下文。
Private Sub Form_Delete(Cancel As Integer)
If Me.SelHeight > 20 Then
Cancel = True
MsgBox ("Bulk deletion is not allowed!")
End If
End Sub
【问题讨论】:
-
从未见过此要求。可能必须通过将表单 AllowDeletions 设置为 no 来防止任何记录删除,然后使用后面的代码可能是表单 DoubleClick 事件以使用 DELETE sql 操作删除记录。删除记录应该很少发生。为什么允许用户删除?
-
作为我的解决方案的替代方案,您可以将记录标记为已删除(附加字段
IsDeleted)并在删除时更新该标志。如果您删除记录,您应该压缩数据库以缩小它。 -
@ComputerVersteher 感谢您的帮助,但您的代码无法启动按摩。
-
@June7 一位用户提到他们已经从数据表中选择了整个数据并打算复制但最终删除了所有内容。
-
这里的防止删除已经不是问题了。重复的按摩射击是针对每条记录的。也许我应该将帖子的标题更改为“如何防止在 Form_Delete 事件中重复触发 MsgBox?”