Ms access 添加一个错误代码

Ms access 添加一个错误代码,ms-access,vba,Ms Access,Vba,我的表单中有一个代码,一旦您输入员工id,它就会搜索一个表并自动填充相应的数据。如果数字不完整或不在表中,将弹出一个错误窗口 代码如下: Me.txtEmpName=rec(“EMP_NA”)突出显示。我希望在ID不完整的情况下,或者如果ID不存在,会出现一个消息框,说明员工ID无效,请重试。或者沿着这些线,然后返回表单,而不是上面的错误消息。有什么想法吗 Private Sub txtEmpID_AfterUpdate() Dim db As DAO.Database Dim rec As

我的表单中有一个代码,一旦您输入员工id,它就会搜索一个表并自动填充相应的数据。如果数字不完整或不在表中,将弹出一个错误窗口

代码如下:

Me.txtEmpName=rec(“EMP_NA”)突出显示。我希望在ID不完整的情况下,或者如果ID不存在,会出现一个消息框,说明员工ID无效,请重试。或者沿着这些线,然后返回表单,而不是上面的错误消息。有什么想法吗

Private Sub txtEmpID_AfterUpdate()
Dim db As DAO.Database
Dim rec As DAO.Recordset

Set db = CurrentDb
strSQL = "Select * From tblEmpData Where TMSID = '" & Me.txtEmpID & "'"
Set rec = db.OpenRecordset(strSQL)

Me.txtEmpName = rec("EMP_NA")
Me.cboGender = rec("EMP_SEX_TYP_CD")
Me.cboEEOC = rec("EMP_EOC_GRP_TYP_CD")
Me.txtDivision = rec("DIV_NR")
Me.txtCenter = rec("CTR_NR")
Me.cboRR = rec("REG_NR")
Me.cboDD = rec("DIS_NR")
Me.txtJobD = rec("JOB_CLS_CD_DSC_TE")
Me.cboJobGroupCode = rec("JOB_GRP_CD")
Me.cboFunction = rec("JOB_FUNCTION")
Me.cboMtgReadyLvl = rec("Meeting_Readiness_Rating")
Me.cboMgrReadyLvl = rec("Manager_Readiness_Rating")
Me.cboJobGroup = rec("JOB_GROUP")

Set rec = Nothing
Set db = Nothing
End Sub

打开记录集后,请检查它是否为空。如果为空,则显示您的消息。如果不是空的,请将记录集值加载到数据控件中

Set rec=db.OpenRecordset(strSQL)
如果(rec.BOF和rec.EOF),则
'当BOF和EOF都为真时,记录集为空
MsgBox“员工id无效,请重试”
其他的
Me.txtEmpName=rec(“EMP_NA”)
”“等等
如果结束

打开记录集后,检查它是否为空。如果为空,则显示您的消息。如果不是空的,请将记录集值加载到数据控件中

Set rec=db.OpenRecordset(strSQL)
如果(rec.BOF和rec.EOF),则
'当BOF和EOF都为真时,记录集为空
MsgBox“员工id无效,请重试”
其他的
Me.txtEmpName=rec(“EMP_NA”)
”“等等
如果结束

以下代码将修复您遇到的问题。1.您没有找到记录,因此您收到了错误。2.如果要处理其他错误,请更改错误陷阱中的代码以测试错误号

Private Sub txtEmpID_AfterUpdate()
Dim db As DAO.Database
Dim rec As DAO.Recordset

    On Error GoTo Error_Trap
    Set db = CurrentDb
    strSQL = "Select * From tblEmpData Where TMSID = '" & Me.txtEmpID & "'"
    Set rec = db.OpenRecordset(strSQL)
    If rec.EOF Then
        MsgBox "The Employee ID you entered was not found. Please try again", vbOKOnly, "Wrong ID"
        GoTo Close_It
    End If

    Me.txtEmpName = rec("EMP_NA")
    Me.cboGender = rec("EMP_SEX_TYP_CD")
    Me.cboEEOC = rec("EMP_EOC_GRP_TYP_CD")
    Me.txtDivision = rec("DIV_NR")
    Me.txtCenter = rec("CTR_NR")
    Me.cboRR = rec("REG_NR")
    Me.cboDD = rec("DIS_NR")
    Me.txtJobD = rec("JOB_CLS_CD_DSC_TE")
    Me.cboJobGroupCode = rec("JOB_GRP_CD")
    Me.cboFunction = rec("JOB_FUNCTION")
    Me.cboMtgReadyLvl = rec("Meeting_Readiness_Rating")
    Me.cboMgrReadyLvl = rec("Manager_Readiness_Rating")
    Me.cboJobGroup = rec("JOB_GROUP")

Close_It:
    Set rec = Nothing
    Set db = Nothing
    Exit Sub

Error_Trap:
    If Err.Number = 99999999 Then                       ' Change this line to test for other conditions
        MsgBox "...... ", vbOKOnly, "....."
        Resume Close_It
    End If
End Sub

以下代码将修复您遇到的问题。1.您没有找到记录,因此您收到了错误。2.如果要处理其他错误,请更改错误陷阱中的代码以测试错误号

Private Sub txtEmpID_AfterUpdate()
Dim db As DAO.Database
Dim rec As DAO.Recordset

    On Error GoTo Error_Trap
    Set db = CurrentDb
    strSQL = "Select * From tblEmpData Where TMSID = '" & Me.txtEmpID & "'"
    Set rec = db.OpenRecordset(strSQL)
    If rec.EOF Then
        MsgBox "The Employee ID you entered was not found. Please try again", vbOKOnly, "Wrong ID"
        GoTo Close_It
    End If

    Me.txtEmpName = rec("EMP_NA")
    Me.cboGender = rec("EMP_SEX_TYP_CD")
    Me.cboEEOC = rec("EMP_EOC_GRP_TYP_CD")
    Me.txtDivision = rec("DIV_NR")
    Me.txtCenter = rec("CTR_NR")
    Me.cboRR = rec("REG_NR")
    Me.cboDD = rec("DIS_NR")
    Me.txtJobD = rec("JOB_CLS_CD_DSC_TE")
    Me.cboJobGroupCode = rec("JOB_GRP_CD")
    Me.cboFunction = rec("JOB_FUNCTION")
    Me.cboMtgReadyLvl = rec("Meeting_Readiness_Rating")
    Me.cboMgrReadyLvl = rec("Manager_Readiness_Rating")
    Me.cboJobGroup = rec("JOB_GROUP")

Close_It:
    Set rec = Nothing
    Set db = Nothing
    Exit Sub

Error_Trap:
    If Err.Number = 99999999 Then                       ' Change this line to test for other conditions
        MsgBox "...... ", vbOKOnly, "....."
        Resume Close_It
    End If
End Sub

你对这些东西的渊博知识简直令人惊叹。你对这些东西的渊博知识简直令人惊叹。