在记录更改上运行VBA,而不是打开Access 2013
我有两个宏我的标准。在记录更改上运行VBA,而不是打开Access 2013
- 当用户切换记录
- 它应该运行记录是否被修改
On Current
的作品,但它也运行在表单打开它应该只运行。 After Update
仅在字段更改时运行。有没有符合我的标准的事件?
您可以使用一个静态变量:
Private Sub Form_Current()
Static Opened As Boolean
If Opened = False
' Form opens.
Opened = True
Else
' Do stuff.
End If
End Sub
为了操纵了此前的纪录:
Private Sub Form_Current()
Static Opened As Boolean
Static LastId As Long
If Opened = False
' Form opens.
Opened = True
ElseIf LastId <> 0 Then
' Do stuff using LastId as the Id.
End If
' Save current Id.
LastId = Nz(Me!Id.Value, 0)
End Sub
这很聪明,我从来没有想过尝试。谢谢。 – jjjjjjjjjjj
也许你可以帮我解决一个弹出的问题。 “On Current”事件为新选择的记录运行宏,而不是用户正在完成的记录。还有其他事件吗? – jjjjjjjjjjj
您可以使用另一个静态来保存上次访问记录的ID。请参阅编辑。 – Gustav
当你说宏,你的意思是一个VBA程序或通过访问宏对象? Excel用户经常调用VBA过程宏,但是Access宏有些不同。 – HansUp
第三条标准:我如何取消切换到另一条记录?我使用'Cancel = True'和'Me.Undo'来恢复数据,但它仍然切换到另一个记录。 – jjjjjjjjjjj
@HansUp这是可以通过窗体的设计视图编辑或使用Alt + F11打开编辑器的类型。 – jjjjjjjjjjj