Access 2003 - 显示OpenForm上提交的新记录

时间:2013-12-01 21:58:37

标签: vba ms-access

用户需要创建新订单。为了实现这一点,我们有一个按钮,可以将订单打开到订单表中的空白记录:

DoCmd.OpenForm "frmOrder", , , , acFormAdd

表单出现并准备好了。但新订单ID号显示(New)。该字段是自动编号。当我在表单上的任何位置输入条目时,(New)将被ID号替换。但我马上想要它。

我认为这是因为新记录没有提交。我可以进行初始提交,以便在打开时显示主键吗?

我尝试使用RunCommand acCmdSaveRecord强制提交Form_Load()事件,但没有成功。

1 个答案:

答案 0 :(得分:2)

这可能是一个坏主意,

如果您先提交,如何在不修改数据库的情况下取消订单?

默认情况下,即使为acFormAdd打开了frmOrder,如果用户单击[关闭]按钮,也不会修改自动编号。如果通过VBA或用户触发器修改表单上的任何字段,则自动编号会增加1,即使最后没有插入记录,甚至也不会取消。

无论如何,有一种方法,假设

Me.txtOrderDate.Controlsource = "OrderDate"

然后

Private Sub Form_Load()

  Me.txtOrderDate.Value = Now()

End Sub

如果您有OrderDate字段等,则ID会自动生成。

注意,如果使用SQL Sever Backend,则在提交记录之前不会分配ID。