添加一行后卸载/关闭弹出表单

时间:2018-08-10 15:08:22

标签: vba ms-access

我在Access frmAddComposerWork中有一个弹出表单,该表单在数据输入设置为的情况下打开,其中有2个文本框:一个为作曲家的姓名,另一个为工作区的姓名。标题。

填写完最后一个文本框后,当我按 ENTER (用新记录更新后面的表)时,我也想关闭表单。我尝试了几个事件,并在上面添加了以下VBA指令:

DoCmd.Close acForm, Me.frmAddComposerWork

但是,表单保持打开状态,并且容易收到新记录(我根本不想要)。

添加单行后如何使表单自行关闭?

2 个答案:

答案 0 :(得分:0)

在点击最后一个文本框上的Enter后关闭表单

Private Sub Text2_KeyPress(KeyAscii As Integer)
     If KeyAscii = vbKeyReturn Then
        DoCmd.Close acForm, Me.Name
     End If
End Sub

当您在窗体上的任意位置按Enter时关闭

KeyPreview属性在窗体的Load事件过程中设置为True。这会导致表单在任何控件接收到键盘事件之前先接收

Private Sub Form_Load()
    Me.KeyPreview = True
End Sub

按Enter可以关闭表单上的任何地方

Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then
       DoCmd.Close acForm, Me.Name
    End If
End Sub

答案 1 :(得分:0)

让表单从其插入后事件关闭。

Option Compare Database
Option Explicit

Private Sub Form_AfterInsert()
    DoCmd.Close ObjectType:=acForm, ObjectName:=Me.Name, Save:=acSaveNo
End Sub

据我了解,这种简单的方法可以实现您的目标:

  1. 您已在数据输入模式下打开表单---表示它仅显示新的空白记录。
  2. 用户可以为新行添加值,但不能导航到任何现有行。
  3. 用户完成该新行的添加后,该表单将关闭。