访问处理无当前记录

时间:2018-10-22 22:53:57

标签: vba ms-access exception

我有下一个代码:

If CurrentDb.OpenRecordset("SELECT tbl_F.[Fecha] FROM tbl_F WHERE tbl_F.[Fecha]=#" & Forms!frm_Name!txt_Fecha & "#;").Fields(0) > 0 Then
    MsgBox "This record already exists"
    Else
        DoCmd.RunCommand acCmdSaveRecord
End If

table_F 如下所示:

|---------------------|
| ID  | Fecha         |
|---------------------|
| 1   | 16/10/2018    |
|---------------------|
| 2   | 17/10/2018    |
|---------------------|

如果我在Fecha字段中输入新的寄存器以确保Access将会删除错误3021没有当前记录,这是预期的。因此,我不想显示该错误消息,而是要处理该错误。我确信这可以像Java上的异常一样处理。按照这种顺序,我可以使用Try Catch,但是我是新手,不确定使用哪种类型的Exception。

1 个答案:

答案 0 :(得分:1)

消除导致错误的情况,而不要处理它。使用DLookup()。

If IsNull(DLookup("[Fecha]", "tbl_F", "[Fecha]=#" & Forms!frm_Name!txt_Fecha & "#")) Then
    DoCmd.RunCommand acCmdSaveRecord
Else
    MsgBox "This record already exists"
End If

您正在以国际格式显示日期。这可能会导致问题。查看http://allenbrowne.com/ser-36.html