在表格

时间:2018-11-13 20:53:39

标签: vba ms-access

我有一个基于表格的表格,但在同一表格上也有一些额外的选择。我想在插入后保持选中记录,以便可以在另一个表中设置其他选项。我试过在插入后使用VBA进行此操作,但是该子例程结束后,表单将消失。

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

我知道gotorecord可以工作,因为我可以手动运行它,并且它确实选择了最后一条记录。问题是在“ AfterInsert”之后有一个清除的表格。如何停止?

2 个答案:

答案 0 :(得分:1)

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

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

请注意,enter不会保存当前记录,它只是tab的替代方法。如果要在离开最后一个字段时保存记录,则可以使用VBA。

答案 1 :(得分:0)

您可能正在使用一些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

修改

要保留当前记录:

转到表单的属性,标签其他,设置循环属性:当前记录