保存记录后,清除访问表单用户界面中的条目,但不清除数据库中的条目

时间:2019-03-13 17:59:07

标签: ms-access ms-access-forms

enter image description here

我将输入滚动,等级和输入的数据,然后单击保存记录将记录保存在DB中。我希望 Clear 按钮仅清除Form的UI中的条目,而不清除DB中的条目,因此我可以输入新记录,而不是关闭表单并再次打开以创建新条目。

仅当记录尚未保存在DB中时,UndoRecord宏才能在Form UI上运行。另外,我也不想删除记录,只想保存后从Form UI中清除该条目。

1 个答案:

答案 0 :(得分:1)

这是绑定表单的基本配方:

  1. 将表单的DataEntry属性设置为true(例如,在表单的“属性表”中)。
  2. 将表单的RecordSource查询更改为在WHERE子句中包含始终为false的语句,例如

SELECT Data.* FROM Data WHERE (True = False);
  1. 在[保存记录]按钮中单击事件处理程序,包括类似于以下内容的代码:

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