子窗体中的“ DoCmd.GoToRecord”对窗体和子窗体都起作用

时间:2018-11-23 17:58:30

标签: ms-access

我正在将MS Access与.accdb数据库一起使用。我有一个表格“ F”,这是一个拆分表格。数据表视图显示客户信息。在该表格上,我有一个子表格“ S”,它是与F的数据表视图中所选客户相关的数据的数据表视图。子窗体具有记录集类型动态集。

在不进行代码修改的情况下,在F中选择一条客户记录的结果是,在F中突出显示了客户记录,在S中突出显示了“顶部/第一”记录。我的目标是在选定的客户记录中突出显示F和S中突出显示的“ addNewRec”记录。

我在该站点和其他站点上发现了几个类似的问题,但是它们并不太相同(带有解决方案)。尽管我从他们那里学到了很多东西,但它们全都以F的数据表视图的“ AdddNewRec”记录结尾,而在单击F中的任何记录后都将其高亮显示。这似乎是最有希望的解决方案,因为它要求使用从F的onCurrent事件中的子例程到S中驻留的公共子例程的S中的记录选择,这将确保在F之后在S中进行处理。我认为这意味着S中的子例程只会影响S中的记录,但这就像其他所有记录,导致高亮显示S和F的“ AddNewRec”记录。我的挫败感触动了我的个人警报!任何帮助/指导将不胜感激。该代码(听起来确实合理并且可以执行-但不能解决问题)是:

表格-当前事件

Private Sub Form_Current()
  Forms![F]![S].Form.GoToNewRecord
End Sub

子窗体

Public Sub GoToNewRecord()
  DoCmd.GoToRecord,,asNewRec
End Sub

1 个答案:

答案 0 :(得分:0)

您的公共职能有错别字。不是AsNewRec,而是AcNewRec 但这不是造成您问题的真正原因。

将S表单中的公共子栏更改为

Public Sub GoToNewRecord()
    Me.Recordset.AddNew 
End Sub

这应该为新记录准备S表格。