2016-07-27 45 views
0

我有两个宏我的标准。在记录更改上运行VBA,而不是打开Access 2013

  • 当用户切换记录
  • 它应该运行记录是否被修改

On Current的作品,但它也运行在表单打开它应该只运行。 After Update仅在字段更改时运行。有没有符合我的标准的事件?

+0

当你说宏,你的意思是一个VBA程序或通过访问宏对象? Excel用户经常调用VBA过程宏,但是Access宏有些不同。 – HansUp

+0

第三条标准:我如何取消切换到另一条记录?我使用'Cancel = True'和'Me.Undo'来恢复数据,但它仍然切换到另一个记录。 – jjjjjjjjjjj

+0

@HansUp这是可以通过窗体的设计视图编辑或使用Alt + F11打开编辑器的类型。 – jjjjjjjjjjj

回答

2

您可以使用一个静态变量

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 
+0

这很聪明,我从来没有想过尝试。谢谢。 – jjjjjjjjjjj

+0

也许你可以帮我解决一个弹出的问题。 “On Current”事件为新选择的记录运行宏,而不是用户正在完成的记录。还有其他事件吗? – jjjjjjjjjjj

+1

您可以使用另一个静态来保存上次访问记录的ID。请参阅编辑。 – Gustav

相关问题