我有一个 MS Access 2010 应用程序。可以在表单中输入新记录。因此,我在表单加载时转到新记录:
Private Sub Form_Load()
DoCmd.GoToRecord Record:=acNewRec
End Sub
输入信息后,点击保存按钮,记录将被保存,表格将转到新记录。
Private Sub btnSave_Click()
DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acNewRec
End Sub
代码被执行,但是没有创建新记录。输入控件链接到表格字段。
我会确保表单仅在脏时才尝试保存,如下所示。 我添加了一个错误处理程序来通知用户无法保存表单。
option explicit
private sub btnSave_Click()
on Error goto ErrTrap
if me.dirty= true then
DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acNewRec
end if
ErrTrap:
MsgBox Err.Number & ": " & Err.Description
end sub
有一个解决方法可以避免
docmd.runcommand
;它会保存记录...但我从未使用过它:
if me.dirty=true then
me.dirty=false
end if
我刚刚解决了类似的问题;如果表单有一个带有控件源“名称”的文本框,它将像这样失败而没有任何信息。确保您的表中没有名为“Name”的字段