由于各种原因,我想在我的表单上设置一个自定义按钮以保存当前记录。我使用一个导航表单,并希望在保存条目时触发相同的过程(完整性检查,用户输入等),从而每当用户按下“保存”按钮或切换到另一个表单时。用户将被有条件地要求确认该过程并因此能够取消它。MS Access vba保存按钮错误3021
一切都与一个非常奇怪和愤怒异常顺利运行:每当我点击“更新前”事件中节省一个新记录按钮和提示信息,我收到
RTE 3021( “没有当前记录”)
没有MsgBox,一切都很好。更奇怪的是: 当我通过使用导航窗体切换到另一个窗体来触发保存过程(或者只需按下“外部”用于数据输入的窗体)时,一切都很好。
这里是一个简约例子(与DoCmd.Save,重新查询或acCmdSaveRecord相似的结果):
Private Sub vt_save_Click()
Me.Dirty = False
End Sub
Private Form_BeforeUpdate(Cancel As Integer)
Cancel = True
MsgBox "Test"
End Sub
任何想法?我根本无法绕过那个错误。
什么是*简约的例子*应该显示?可能的错误来自'BeforeUpdate'触发器中调用的* other *代码(即完整性检查,用户输入),无法在新记录上运行。请发布这样的更完整的代码。 – Parfait
我从来没有使用BeforeUpdate事件的形式。我在按钮Click事件中进行数据验证。 – June7
@Parfait这个简约的例子显示了你所描述的内容。创建一个新的数据库,一个表格,一个表格。创建一个记录,输入数据并按下按钮。等voilá - 你会得到错误。 –