acCmdSaveRecord 不保存记录
Posted
技术标签:
【中文标题】acCmdSaveRecord 不保存记录【英文标题】:acCmdSaveRecord does not save record 【发布时间】:2015-11-04 13:18:49 【问题描述】:我有一个 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
代码被执行,但是没有创建新记录。输入控件链接到表格字段。
【问题讨论】:
您的表单是否未绑定?真是愚蠢的问题,但我不得不问 我试过绑定和解绑,都没有解决问题。 你确定你的表格是脏的吗?使用if dirty then
来确保有东西要保存。
我在控件中输入了信息,所以应该有一些东西要保存。但是,我将如何使用您的提案?
"代码被执行,但是没有创建新记录。" ——究竟发生了什么?记录选择器是否仍显示“笔”编辑图标?如果acCmdSaveRecord
失败,通常会显示错误。
【参考方案1】:
我会确保表单仅在如下所示脏时尝试保存。 我添加了一个错误处理程序来通知用户表单无法保存。
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
【讨论】:
以上是关于acCmdSaveRecord 不保存记录的主要内容,如果未能解决你的问题,请参考以下文章
Rails ActiveRecord 在 after_save 回调中使用最近保存的记录 ID [关闭]
使用 CakePHP 的 saveMany() 保存 >10000 条记录
在关闭之前检查用户表单是不是已使用 save_click 保存
Laravel save() 正在更新错误的 mysql 记录