我有一个基于表的表单,但在同一表单上也有一些额外的选项。我想在插入后保持选中的记录,这样我就可以在另一个表中设置一些其他选项。我试着用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
编辑:
要保留当前记录:
转到表单的属性,选项卡其他设置循环属性:当前记录