Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 使用虚拟数据访问2010年新记录_Ms Access_Vba_Record_Subform - Fatal编程技术网

Ms access 使用虚拟数据访问2010年新记录

Ms access 使用虚拟数据访问2010年新记录,ms-access,vba,record,subform,Ms Access,Vba,Record,Subform,在这里访问2010 我对我的三个子表单中的两个子表单有一个困扰。每个子窗体都使用唯一的信息绑定到自己的表中;主窗体也绑定到它自己的表。所有三个子表单表都与主表单表处于一对一的关系中。我的第一个子表单正常工作,当有新记录时,其所有绑定的输入字段都显示为空。格式为_Current()的代码: 用于所有三个子窗体和主窗体,以显示较旧的记录,并通过重置复选框等为窗体的数据输入做好准备;没有代码“重置”输入字段本身。不幸的是,其他两个子窗体保留上次输入的记录中的数据,并将其显示为用户希望重新输入相同的数据

在这里访问2010

我对我的三个子表单中的两个子表单有一个困扰。每个子窗体都使用唯一的信息绑定到自己的表中;主窗体也绑定到它自己的表。所有三个子表单表都与主表单表处于一对一的关系中。我的第一个子表单正常工作,当有新记录时,其所有绑定的输入字段都显示为空。格式为_Current()的代码:

用于所有三个子窗体和主窗体,以显示较旧的记录,并通过重置复选框等为窗体的数据输入做好准备;没有代码“重置”输入字段本身。不幸的是,其他两个子窗体保留上次输入的记录中的数据,并将其显示为用户希望重新输入相同的数据。问题是,除非用户明确地进入数据输入字段,然后以任何方式离开,否则这些数据没有任何意义。仅在不输入数据输入字段的情况下移动到下一条记录不会保存幻象预输入的数据(这是因为用户从未在子表单中输入数据,所以子表单中的记录从未创建)


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

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

将其更改为“是”将更改子窗体的行为

从那时起,所有的子表单都要清除并准备好接受新记录的数据。输入一条记录后,子窗体将被清除,并将为另一条全新记录做好准备

此选项可用于任何形式


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

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

将其更改为“是”将更改子窗体的行为

从那时起,所有的子表单都要清除并准备好接受新记录的数据。输入一条记录后,子窗体将被清除,并将为另一条全新记录做好准备

此选项可用于任何形式


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

继续思考:

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


再次感谢你的帮助

继续思考:

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


再次感谢你的帮助

哇,简单的修复好了!非常感谢。有些东西我没有检查,因为所有的子窗体都被设置为“否”表示“数据输入”,其中一个可以工作。没问题!很乐意帮忙!哇,简单的修复好了!非常感谢。有些东西我没有检查,因为所有的子窗体都被设置为“否”表示“数据输入”,其中一个可以工作。没问题!很乐意帮忙!
  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
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