访问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代码。我在主表单中打开新记录时尝试主动重新查询子表单但没有成功。我还尝试在输入新记录时将值预先设置为“”,这在一定程度上起作用,但看到一个子表单正常工作,我是在解决方案之后,而不是解决方法。
答案 0 :(得分:2)
进入子窗体的设计视图,在子窗体的属性中找到名为“数据输入”的设置。
将其更改为“是”将改变子窗体的行为。
从那时起,所有子表单都清晰并准备接受新记录的数据。输入记录后,子表单将被清除,并准备好再创建另一个新记录。
此选项适用于任何表格。
我会使用此设置更新其他两个子表单。简单,无需VBA!
答案 1 :(得分: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
再次感谢您的帮助!