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



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

DoCmd.OpenForm "frmOrder", , , , acFormAdd

表格上来了,准备好了。但新的订单ID号显示(New)。该字段是一个自动编号。当我在表单上的任何位置输入时,(New)都会被ID号所取代。但我马上就要。

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

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

这可能是个坏主意

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

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

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

Me.txtOrderDate.Controlsource = "OrderDate"

然后

Private Sub Form_Load()
  Me.txtOrderDate.Value = Now()
End Sub

如果您有OrderDate字段或类似字段,ID将由Access自动生成。

请注意,如果使用SQL服务器后端,则在提交记录之前不会分配ID。

最新更新