楼主的方法是很巧妙的。不过程序写得有点不是十分非常过于太很专业。首先要确保默认的删除确认对话框不出来,然后按照自定义的逻辑逐层处理:
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
On Error GoTo Catch
Dim lRows As Integer
lRows = SelHeight
Response = acDataErrContinue '///////清除系统默认的删除确认对话框
If lRows > 1 Then
MsgBox "一次只能选择一条记录", vbExclamation + vbOKOnly, "订单系统"
Cancel = True
Else
If Me.是否归还 Then
MsgBox "此产品已归还不能删除", vbExclamation + vbOKOnly, "订单系统"
Cancel = True
Else
If MsgBox("真的要删除吗?", vbQuestion + vbOKCancel, "订单系统") = vbCancel Then
Cancel = True
End If
End If
End If
Finally:
Exit Sub
Catch:
MsgBox Err.Number & vbNewLine & Err.Description, vbCritical + vbOKOnly, "发生错误"
Resume Finally
End Sub
最后,有兴趣的话还可以在AfterDelConfirm事件中告诉用户一些删除后的确认等信息...
另外的方法可能是在设计窗体的时候将数据表定为禁止删除,然后用一个删除按钮让SQL代码在服务器端做删除,等。
[此贴子已经被作者于2004-7-8 21:03:16编辑过]
|