acCmdSaveRecord 不保存记录

问题描述 投票:0回答:2

我有一个 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

代码被执行,但是没有创建新记录。输入控件链接到表格字段。

vba ms-access ms-access-2010
2个回答
0
投票

我会确保表单仅在脏时才尝试保存,如下所示。 我添加了一个错误处理程序来通知用户无法保存表单。

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

0
投票

我刚刚解决了类似的问题;如果表单有一个带有控件源“名称”的文本框,它将像这样失败而没有任何信息。确保您的表中没有名为“Name”的字段

© www.soinside.com 2019 - 2024. All rights reserved.