我将输入卷,等级和输入的数据,然后单击Save Record以将记录保存在数据库中。我希望该Clear按钮仅清除表单 UI 中的条目而不清除 DB 中的条目,因此我可以输入新记录,而不是关闭表单并再次打开它以创建新条目。
仅当UndoRecord
记录尚未保存在 DB 中时,宏才可在表单 UI 上使用。另外我不想删除记录,我只想在保存后从表单 UI 中清除条目。
我将输入卷,等级和输入的数据,然后单击Save Record以将记录保存在数据库中。我希望该Clear按钮仅清除表单 UI 中的条目而不清除 DB 中的条目,因此我可以输入新记录,而不是关闭表单并再次打开它以创建新条目。
仅当UndoRecord
记录尚未保存在 DB 中时,宏才可在表单 UI 上使用。另外我不想删除记录,我只想在保存后从表单 UI 中清除条目。
这是绑定表单的基本配方:
SELECT Data.* FROM Data WHERE (True = False);
Private Sub SaveRecord_Click()
On Error Resume Next
Me.Dirty = False 'Attempt to save the record
If Err.Number = 0 Then
Me.Requery 'Force the form to reload the query and reset the data entry form
Else
MsgBox Err.Description, vbCritical, "Error"
End If
End Sub
注意:错误的标准和设置DataEntry = True
实际上是多余的,因为其中一个或另一个应该足以使现有记录不显示在表格中。但是,某些组合键可以允许在显示最近添加的记录的同时导航表单。拥有这两种设置可确保仅添加新记录而不显示任何已保存的记录。
如果您只想使用清除按钮清除表单,让新添加的记录可供查看,则改为设置以下代码:
Private Sub SaveRecord_Click()
On Error Resume Next
Me.Dirty = False 'Attempt to save the record
If Err.Number = 0 Then
'Only enter a new record, leaving other newly-added record accessible
DoCmd.GoToRecord , , acNewRec
Else
MsgBox Err.Description, vbCritical, "Error"
End If
End Sub
Private Sub ClearForm_Click()
On Error Resume Next
Me.Dirty = False 'Attempt to save the record
If Err.Number = 0 Then
Me.Requery
Else
MsgBox Err.Description, vbCritical, "Error"
End If
End Sub