在表单中插入新记录后,保持记录的最新状态



我有一个基于表的表单,但在同一表单上也有一些额外的选项。我想在插入后保持选中的记录,这样我就可以在另一个表中设置一些其他选项。我试着用VBA After Insert来做这件事,但子程序结束后表单就空白了。

Private Sub Form_AfterInsert()
    DoCmd.GoToRecord , , acLast
End Sub

我知道我的gotorecord可以工作,因为我可以手动运行它,它确实选择了最后一张唱片。问题是在"AfterInsert"之后有一个表单clear。我该如何阻止它?

控制此操作的属性是Form.Cycle属性。

将其设置为当前记录(1(,然后在最后一个字段上按enter键或tab键将再次移回第一个字段。

请注意,enter不会保存当前记录,它只是选项卡的一个替代选项。如果您想在离开最后一个字段时保存记录,可以使用VBA。

您可能正在使用一些DoCmd命令来插入记录。

使用RecordsetClone,任何东西都不会移动-如果可以看到新记录,则表单将显示新记录:

Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
rs.AddNew
    rs.Fields("First Fieldname").Value = some value
    rs.Fields("Second Fieldname").Value = some other value
    ' etc.
rs.Update
rs.Close

编辑

要保留当前记录:

转到表单的属性,选项卡其他设置循环属性:当前记录

最新更新