【发布时间】:2020-07-13 20:46:09
【问题描述】:
我们有一个 Access 2010 数据库,它充当 MS SQL 数据库的前端。当我们在表单中编辑数据时,需要运行一个过程才能将某些数据正确保存回 SQL。
我们的数据库程序员添加了一个“保存按钮”来执行此操作。但这会导致另一个问题 - Access 中有多种保存表单的方法 -
- 导航到下一条记录
- 点击左侧的确认栏
- 创建新记录
- 搜索新记录
- 使用功能区中的命令
有没有办法将程序附加到实际的保存动作中,这样无论人们如何移动到程序运行的下一个表单?
[更新]
这是幕后代码:第一个 sub 附加到“保存”按钮。当然,第二个附在BeforeUpdate的表格上。
Private Sub SaveRecord_Click()
'From NAME form
Form_BeforeUpdate False
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
'used by NAME form
[Last_Update] = Now
'*********************
Save_Record
'*********************
MName_ID = Me.Name_ID
Me.Undo
Cancel = True
If Not IsNull(MName_ID) Then
Jump_to_Name_ID MName_ID, True
Else
End If
End Sub
我想我只是不明白这个按钮是干什么用的。
【问题讨论】:
-
我会调查您关注的表单/控件的“更新前”事件。该事件将在任何记录/数据更新之前触发。它还允许您在必要时取消保存。
-
[Last_Updated] 可以很容易地实现为数据宏,因此无论何时更改表,无论如何(无论是调用 DoCmd.RunSQL 的表单还是默认表视图),[Last_Updated] 都会总是被设置。我的回答为您提供了一些处理插入/更新/删除的高级方法,但在这种情况下,从 vba 执行此操作可能有点过头了。查找有关如何使用数据宏的指南...
标签: ms-access vba ms-access-2010