表单更改时触发的事件

时间:2010-01-14 17:15:30

标签: ms-access events forms navigation

我有一个显示项目信息的表单。表单上的大多数字段都绑定到Project表,并作为绑定字段显示和更新。但是,我还有10个来自ProjectAudience表的复选框。仅当选中表单上的框时,表中是否存在匹配的记录。因此,我需要插入和删除记录,因为这些框被选中并取消选中。

我可以使用AfterUpdate事件在复选框级别执行此操作,但这需要10个不同的事件。我希望在表单级别删除该项目的ProjectAudience表中的所有记录并添加已检查的记录。

基本上,我正在寻找与触发记录导航按钮或关闭表单时将触发的Form_Current事件相反的事件。我试图避免编写自己的导航按钮或向用户必须按下的表单添加“保存”按钮。我想要一些自动的东西,当用户离开记录时会更新这个表。

基于以下评论:可以检查从无到有的任何框的组合,而不仅仅是一个框。因此,我可能会删除所有记录而不插入任何记录...或者如果每个框都被选中则添加10条记录。 (另外,我使用的是Microsoft Access 2003)

2 个答案:

答案 0 :(得分:1)

您是否考虑过将这些复选框添加到选项组并使用该组中的事件?

编辑重新评论,替代方法,不要使用选项组,而是将代码添加到所有相关选项的事件行。

您不需要10个不同事件的代码,您可以设置事件行,例如,单击On Click到函数名称,让我们说:

On Click  : =TestMe()

Event Line http://ltd.remou.com/access/EventLine.png

然后你需要一个功能:

Function TestMe()
    MsgBox "You clicked " & Screen.ActiveControl.Name
End Function

答案 1 :(得分:0)

您可以使用BeforeUpdate方法。但是,如果仅更改了复选框,则此事件将不会触发,因为绑定表单的记录不会更改。

我建议将事件链接到复选框。创建一个函数UpdateCheckbox(CheckboxID作为整数),它可以执行您想要的操作,并将其置于ckeckboxes:= UpdateCheckbox(1)的'OnClick'事件中。更改不同复选框的1。