我将输入滚动,等级和输入的数据,然后单击保存记录将记录保存在DB中。我希望 Clear 按钮仅清除Form的UI中的条目,而不清除DB中的条目,因此我可以输入新记录,而不是关闭表单并再次打开以创建新条目。
仅当记录尚未保存在DB中时,UndoRecord
宏才能在Form UI上运行。另外,我也不想删除记录,只想保存后从Form UI中清除该条目。
答案 0 :(得分:1)
这是绑定表单的基本配方:
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