我有一个包含一些字段的表单。表格是根据相关表格创建的。
我已尝试使用按钮向导创建保存按钮,我尝试使用以下内容:
Private Sub saveRecord_Click()
DoCmd.RunCommand acCmdSaveRecord
End Sub
没有任何作用,我尝试保存信息的任何方法都不起作用。我已经确定表单是绑定的,据我所知,它是在该表格下创建的。
表单加载时我有这一行,以确保表单在新记录上:
Me.Recordset.AddNew
根据我对语言的有限理解,将表单设置为新记录然后执行保存命令应该有效吗?
答案 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
并禁用命令按钮。