2010-01-14 153 views
0

我有表单显示项目信息。表单上的大多数字段都绑定到一个Project表格,并以绑定字段的形式进行显示和更新。但是,我也有10个来自ProjectAudience表格的复选框。只有在窗体上的框被选中时,表中是否有匹配的记录。因此,我需要插入和删除记录,因为这些框被选中或取消选中。表单发生变化时触发的事件

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

基本上,我正在寻找Form_Current事件的相反情况,当记录导航按钮被触发或窗体关闭时将触发该事件。我试图避免写我自己的导航按钮或添加一个“保存”按钮到用户必须按下的窗体。我想要一些自动更新此表时,用户导航离开记录。

基于以下评论:任何组合框从无到全都可以被检查而不仅仅是一个盒子。因此,我可能会清除所有记录,并且不会再插入任何文件...或者如果每个文件夹都被检查,则可以添加10条记录。 (另外,我正在使用Microsoft Access 2003)

回答

1

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

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

你并不需要为10周不同的活动代码,您可以设置,比如事件行,在点击一个函数的名称,让我们说:

On Click : =TestMe() 

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

你那么需要一个功能:

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

我可能编写了不正确的组,但是当我尝试它时,我一次只能检查1个框。在上面的情况下(我将编辑我的原始文章),检查每个箱子的组合从一个到全部都是可能的。所以可以有任何从0到10的记录。 – 2010-01-14 17:28:16

+0

我已经添加了一条记录。 – Fionnuala 2010-01-14 17:50:30

+0

但是,如果我将10个复选框放在选项组中,那么我只能选择10个框中的1个。我需要能够检查多达10个盒子。在这一点上这不是一个事件问题,选项组不会让我多选。 – 2010-01-14 18:36:19

0

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

我会建议将事件链接到复选框。创建一个函数UpdateCheckbox(CheckboxID as integer),它可以做你想做的事,并将它放在ckeckboxes的'OnClick'事件中:= UpdateCheckbox(1)。更改不同复选框的1。

相关问题