我有下一个代码:
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。
答案 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