Access 2010表单不会保存记录

时间:2014-03-15 14:51:48

标签: ms-access access-vba ms-access-2010

我有一个包含一些字段的表单。表格是根据相关表格创建的。

我已尝试使用按钮向导创建保存按钮,我尝试使用以下内容:

Private Sub saveRecord_Click()
   DoCmd.RunCommand acCmdSaveRecord
End Sub

没有任何作用,我尝试保存信息的任何方法都不起作用。我已经确定表单是绑定的,据我所知,它是在该表格下创建的。

表单加载时我有这一行,以确保表单在新记录上:

Me.Recordset.AddNew

根据我对语言的有限理解,将表单设置为新记录然后执行保存命令应该有效吗?

1 个答案:

答案 0 :(得分:2)

RunCommand acCmdSaveRecord只会在需要保存的情况下进行保存。只需将记录添加到表单的记录集中,就无法保存任何内容。

将此更改更改为saveRecord_Click()以确认是否为解释:

Private Sub saveRecord_Click()
    If Me.Dirty = True Then
        DoCmd.RunCommand acCmdSaveRecord
    Else
        MsgBox "nothing to save"
    End If
End Sub

其他一些建议......

由于您希望在加载表单时转到新记录,请使用GoToRecord代替Me.Recordset.AddNew

Private Sub Form_Load()
    DoCmd.GoToRecord Record:=acNewRec
End Sub

我之前建议的saveRecord_Click()版本只是为了探讨这个问题。但是对于日常使用,允许用户单击saveRecord按钮然后告诉他们没有什么可以保存是没有意义的。最好只在需要保存的时候点击按钮。

因此,您可以在表单On Current事件中禁用命令按钮,并在On Dirty事件中启用它(这意味着可以保存)。

Private Sub Form_Current()
    Me.saveRecord.Enabled = False
End Sub

Private Sub Form_Dirty(Cancel As Integer)
    Me.saveRecord.Enabled = True
End Sub

此外,作为saveRecord_Click()的最后一步,您可能希望在另一个控件上SetFocus并禁用命令按钮。