0

在此处访问 2010。

我对我的三个子表单中的两个有一个唠叨的问题。每个子表单都绑定到具有唯一信息的自己的表;主窗体也绑定到它自己的表。所有三个子表单表都与主表单表是一对一的关系。我的第一个子表单的行为正常,因为当有新记录时,它的所有绑定条目字段都显示为空白。Form_Current() 中的代码:

  Private Sub Form_Current()

  'Determine what should be displayed'
  'Do stuff to prepare the current record for display'

  If Me.NewRecord = True Then
  Me.Stuff = Null
  End If

  End Sub

存在于所有三个子表单和主表单中,以显示较旧的记录并通过重置复选框等为数据输入做好准备;没有代码可以“重置”输入字段本身。不幸的是,其他两个子表单保留了最后输入的记录中的数据并显示它,就好像用户想要重新输入相同的数据一样。问题是,除非用户明确输入数据输入字段然后以任何方式离开,否则这些数据没有任何意义。简单地移动到下一条记录而不输入数据输入字段不会保存幻像预先输入的数据(这是预期的,因为用户从未在子表单中输入数据,因此从未创建过子表单中的记录)。

我正在寻找的是默认情况下打开干净记录的特定于表单的选项,或者可以确保新记录上的空数据字段的 VBA 代码。当在主窗体中打开新记录但未成功时,我尝试主动重新查询子窗体。我还尝试在输入新记录时将值预先设置为“”,这在一定程度上确实有效,但看到一个子表单正常工作,我正在寻求解决方案,而不是解决方法。

4

2 回答 2

2

进入子窗体的设计视图,在子窗体的属性中找到名为“数据输入”的设置。

将其更改为“是”将更改子表单的行为。

从那时起,所有子表单要做的就是清楚并准备好接受新记录的数据。输入记录后,子表单将被清除并准备好输入另一个全新的记录。

此选项适用于任何形式。

我将使用此设置更新其他两个子表单。简单,无需 VBA!

于 2013-02-06T21:20:39.283 回答
1

继续思考:

我发现在子表单上将“数据输入”设置静态设置为“是”是旧记录浏览功能不再起作用。新记录清除了旧数据,但现在旧记录也没有显示输入的内容;因为“数据输入”设置为他们准备新数据。必须做的是根据记录是否为“新”主动设置每个子表单上的“数据输入”设置:

Private Sub Form_Current()

'Determine what should be displayed'
'Do stuff to prepare the current record for display'

If Me.NewRecord = True Then
 Me.Stuff = Null
 Me!SubFormName0.Form.DataEntry = True
 Me!SubFormName1.Form.DataEntry = True
 Me!SubFormName2.Form.DataEntry = True
Else
 Me.Stuff = DatabaseNumbers
 Me!SubFormName0.Form.DataEntry = False
 Me!SubFormName1.Form.DataEntry = False
 Me!SubFormName2.Form.DataEntry = False
End If

End Sub

再次感谢您的帮助!

于 2013-02-13T13:36:06.233 回答