用户需要创建新订单。为了实现这一点,我们有一个按钮,可以将订单打开到订单表中的空白记录:
DoCmd.OpenForm "frmOrder", , , , acFormAdd
表单出现并准备好了。但新订单ID号显示(New)
。该字段是自动编号。当我在表单上的任何位置输入条目时,(New)
将被ID号替换。但我马上想要它。
我认为这是因为新记录没有提交。我可以进行初始提交,以便在打开时显示主键吗?
我尝试使用RunCommand acCmdSaveRecord
强制提交Form_Load()
事件,但没有成功。
答案 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。