Ms access 添加一个错误代码
我的表单中有一个代码,一旦您输入员工id,它就会搜索一个表并自动填充相应的数据。如果数字不完整或不在表中,将弹出一个错误窗口 代码如下: Me.txtEmpName=rec(“EMP_NA”)突出显示。我希望在ID不完整的情况下,或者如果ID不存在,会出现一个消息框,说明员工ID无效,请重试。或者沿着这些线,然后返回表单,而不是上面的错误消息。有什么想法吗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
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
你对这些东西的渊博知识简直令人惊叹。你对这些东西的渊博知识简直令人惊叹。