【问题标题】:Where to place my on error command in Access 365 vba code在 Access 365 vba 代码中放置我的错误命令的位置
【发布时间】:2019-11-17 14:17:03
【问题描述】:

我在 Windows 10 电脑上使用 MS Access DB 365。 我有一个我已经放在一起的代码。现在承认我不是专家,但这在一定程度上是有效的。我附上了一些图片和我的代码来解决这个问题。我有一个供员工登录的登录表。在该表单上,我有两个子表单和两个未绑定的文本框。一个文本框 (txt_EDPI) 是用户将输入他们的员工编号。然后它查询Source Object(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

表单的设计视图

表单的表单视图

【问题讨论】:

    标签: ms-access onerror


    【解决方案1】:

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

    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>
    

    【讨论】:

    • 谢谢。效果很好。我刚刚将 MsgBox 切换为 DoCmd.OpenForm 并在添加模式下打开了一个添加新用户表单。再次感谢您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2018-01-17
    • 2023-03-20
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多