Ms access Access VB如何让一个模块忽略第二个模块
我在access中有一个表单,我输入支票号码,它在表中查找最后一个支票号码,我希望能够输入文本现金而不是支票号码,但当我输入现金时,模块1第二次运行,然后它将从数据库表返回最后一个支票号码。 我在Access visual basic中有两个不同的模块,如果第一个模块运行且为true,如何使其忽略第二个模块 单元1Ms access Access VB如何让一个模块忽略第二个模块,ms-access,Ms Access,我在access中有一个表单,我输入支票号码,它在表中查找最后一个支票号码,我希望能够输入文本现金而不是支票号码,但当我输入现金时,模块1第二次运行,然后它将从数据库表返回最后一个支票号码。 我在Access visual basic中有两个不同的模块,如果第一个模块运行且为true,如何使其忽略第二个模块 单元1 Private Sub CheckNum_BeforeUpdate(Cancel As Integer) Dim rslt As String DoCmd.S
Private Sub CheckNum_BeforeUpdate(Cancel As Integer)
Dim rslt As String
DoCmd.SetWarnings False
If DCount("*", "FurChecks", "[CheckNum]='" & Me.CheckNum & "'") > 0 Then
rslt = MsgBox("This number has already been entered. Do you wish to continue?", vbOKOnly)
Me.Undo
DoCmd.SetWarnings True
Else
'do nothing
End If
End Sub
单元2
Private Sub CheckNum_LostFocus()
On Error GoTo Err_CheckNum_LostFocus
Dim db As Database
Dim rsCheckNumber As Recordset
Set db = CurrentDb
Set rsCheckNumber = db.OpenRecordset("LastUsedCheckNumber")
If Me.TempNewCheckNumber = Me.CheckNum Then
rsCheckNumber.MoveFirst
rsCheckNumber.Edit
rsCheckNumber!LastUsedCheckNumber = Me.TempNewCheckNumber
rsCheckNumber.Update
End If
Exit_CheckNum_LostFocus:
rsCheckNumber.Close
db.Close
Set db = Nothing
Set rsCheckNumber = Nothing
Exit Sub
Err_CheckNum_LostFocus:
MsgBox Err.Description
Resume Exit_CheckNum_LostFocus
End Sub
首先,表单的代码模块中没有两个模块,而是两个子函数 接下来,如果不希望更新,请取消更新:
Private Sub CheckNum\u在更新之前(取消为整数)
如果DCount(“*”、“FurChecks”、“[CheckNum]=”、“&Me.CheckNum&“”)大于0,则
取消=真
如果结束
如果Cancel=True,则
MsgBox“此号码已输入。”,vbOKOnly
我,解开
如果结束
端接头
最后,将LostFocus代码移动到AfterUpdate事件:
Private Sub-CheckNum\u AfterUpdate()
首先,表单的代码模块中没有两个模块,只有两个子功能
接下来,如果不希望更新,请取消更新:
Private Sub CheckNum\u在更新之前(取消为整数)
如果DCount(“*”、“FurChecks”、“[CheckNum]=”、“&Me.CheckNum&“”)大于0,则
取消=真
如果结束
如果Cancel=True,则
MsgBox“此号码已输入。”,vbOKOnly
我,解开
如果结束
端接头
最后,将LostFocus代码移动到AfterUpdate事件:
Private Sub-CheckNum\u AfterUpdate()
Dave,您的控制事件不应位于常规模块中,而应位于它们所属的表单模块中。您还应该查看这篇关于事件顺序的文章:我的建议是将所有代码放在Before_Update事件中,并在那里进行逻辑检查。您还可以在当前代码中禁用/重新启用事件,但这可能会变得棘手。HTHDave,您的控制事件不应位于常规模块中,而应位于它们所属的模块形式中。您还应该查看这篇关于事件顺序的文章:我的建议是将所有代码放在Before_Update事件中,并在那里进行逻辑检查。您还可以在当前代码中禁用/重新启用事件,但这可能会变得棘手。嗯