Ms access 使用上一个条目计算MS Access vba
我需要确保我的用户进入的停机时间不会超过他们可用的时间。为此,我计算了他们的可用时间,并在表单中创建了一个running total列来显示他们当前的停机分钟数(他们每次输入一个停机原因和“停机分钟数”) 现在,我正试图编写一个VBA代码来检查可用时间和运行总停机时间。除第一个条目外,其他条目都有效。如果用户输入的数字高于第一次输入时的可用时间,则允许输入。我认为这是因为我使用了“更新后”,但我尝试了其他事件,结果没有改变 以下是我当前的VBA代码:Ms access 使用上一个条目计算MS Access vba,ms-access,vba,Ms Access,Vba,我需要确保我的用户进入的停机时间不会超过他们可用的时间。为此,我计算了他们的可用时间,并在表单中创建了一个running total列来显示他们当前的停机分钟数(他们每次输入一个停机原因和“停机分钟数”) 现在,我正试图编写一个VBA代码来检查可用时间和运行总停机时间。除第一个条目外,其他条目都有效。如果用户输入的数字高于第一次输入时的可用时间,则允许输入。我认为这是因为我使用了“更新后”,但我尝试了其他事件,结果没有改变 以下是我当前的VBA代码: Private Sub Form_After
Private Sub Form_AfterUpdate()
If Me.RunTime.Value < Me.DTSum Then
MsgBox ("You have too much downtime")
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.RunCommand acCmdRecordsGoToPrevious
Else
MsgBox ("Okay")
End If
End Sub
Private子表单_AfterUpdate()
如果Me.RunTime.Value
考虑使用触发器事件(通常是用于数据验证的事件),在输入后和保存前警告用户,然后相应地取消事件。对于新事件,使用触发器事件
使用这种方法,您可以避免删除操作,并采取主动的姿态,而不是被动的姿态
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.RunTime.Value < Me.DTSum Then
MsgBox ("You have too much downtime")
Cancel = True
Me!RunTime.Undo
Else
MsgBox ("Okay")
End If
End Sub
Private Sub Form_BeforeInsert(Cancel As Integer)
If Me.RunTime.Value < Me.DTSum Then
MsgBox ("You have too much downtime")
Cancel = True
Me!RunTime.Undo
Else
MsgBox ("Okay")
End If
End Sub
Private子表单\u更新前(取消为整数)
如果Me.RunTime.Value
或使用干燥er溶液的功能:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Cancel = CheckRunTime
Me!RunTime.Undo
End Sub
Private Sub Form_BeforeInsert(Cancel As Integer)
Cancel = CheckRunTime
Me!RunTime.Undo
End Sub
Function CheckRunTime As Integer
Dim Cancel As Integer
If Me.RunTime.Value < Me.DTSum Then
MsgBox ("You have too much downtime")
Cancel = True
Else
MsgBox ("Okay")
Cancel = False
End If
CheckRunTime = Cancel
End Sub
Private子表单\u更新前(取消为整数)
取消=检查运行时
我运行时。撤消
端接头
插入前的专用子表单(取消为整数)
取消=检查运行时
我运行时。撤消
端接头
函数CheckRunTime为整数
将取消设置为整数
如果Me.RunTime.Value