在 Access 365 vba 代码中放置错误命令的位置

Where to place my on error command in Access 365 vba code

我在 windows 10 台电脑上使用 MS Access DB 365。 我有一个我放在一起的代码。现在承认我不是专家,但这在一定程度上是有效的。我附上了一些图片和我的代码来解决这个问题。我有一个登录 sheet 供员工登录。在该表单上,我有两个子表单和两个未绑定的文本框。一个文本框 (txt_EDPI) 是用户输入其员工编号的地方。然后它查询源对象是 (sfrm_User_Info) 的第一个子表单 (subUserList),这个子表单是隐藏的。我的第二个子表单 (subSignIn) 的源对象是 (sfrm_Sign_In_List) 是可见的,它是一个连续的表单。

目标是,当用户在 (txt_EDPI) 框中输入他们的号码,然后单击登录按钮时,它将找到 (sfrm_User_Info) 并且该记录将被带到下一个子表单 (sfrm_Sign_In_List)。我现在唯一的问题是,如果我的数据库中不存在该用户,我会收到错误消息。我需要有关编写脚本以及将其放置在当前脚本中的位置方面的帮助。现在,如果有更好的方法可以做到这一点,请告诉我。我的脚本如下。

Private Sub cmd_SignIn_Click()
Dim SQL As String
Dim db As Database
Dim rec As Recordset
SQL = "SELECT tbl_User_Info.EDPI, tbl_User_Info.[User Name]," _
        & "tbl_User_Info.[User Email]," _
        & "tbl_User_Info.Office FROM tbl_User_Info " _
        & "Where EDPI LIKE '*" & Me.txt_EDPI & "*'"                
    Me.subUserList.Form.RecordSource = SQL
    Me.subUserList.Form.Requery
    Set db = CurrentDb
    Set rec = db.OpenRecordset("Select * from tbl_Sign_In_List")
        rec.AddNew
        rec("EDPI") = Me.subUserList.Form.[EDPI]
        rec("User Name") = Me.subUserList.Form.[User Name]
        rec("User Email") = Me.subUserList.Form.[User Email]
        rec("Office") = Me.subUserList.Form.[Office]
        rec("Sign In Date") = Me.txt_MDate
        rec.Update
Set rec = Nothing
Set db = Nothing    
Me.subSignIn.Form.Requery
Me.txt_EDPI.Value = ""
DoCmd.GoToControl "cmd_SignIn"
DoCmd.GoToControl "txt_EDPI"
End Sub

窗体的设计视图

表单的表单视图

作为第一步,您可以检查用户是否存在:

If IsNull(DLookup("EDPI", "tbl_User_Info", "EDPI LIKE '*" & Me.txt_EDPI & "*'")) Then
    MsgBox "User not found."
    Exit Sub   ' or other action.
Else
    SQL = "SELECT tbl_User_Info.EDPI, tbl_User_Info.[User Name]," _
            & "tbl_User_Info.[User Email]," _
            & "tbl_User_Info.Office FROM tbl_User_Info " _
            & "Where EDPI LIKE '*" & Me.txt_EDPI & "*'"
<snip>