我是Access VBA编程的新手 . 这是在Access中创建表单时遇到的一个问题 . 我需要将表单的记录源链接到我已经定义的查询对象 . 假设我的查询中有field1,field2,field3等 . 我想提出的最终产品是
-
在表单的顶部,有几个文本框供用户输入field1,field2,field3 ...的过滤条件 .
单击按钮 -
,数据表显示在表单底部,并应用了过滤条件
-
除了查询中的现有字段之外,我还需要在数据表的末尾添加一个基于field1和field2的某些计算结果的自定义列 . 可以显示一些文本,例如"Late","Early"或"On Time"
我提出了两种设计方法,但由于缺乏VBA编程经验,我现在无法完成其中任何一项...
Design 1:
我有一个主要表单与标准输入文本框 . 此主窗体未链接到任何数据源 . 然后我在底部有一个子表单,其数据源是通过读取主表单中的文本框值来动态设置的 .
Design 2:
我有一个表单,但我将所有条件框移到表单 Headers 部分 . 此表单具有来自查询对象的记录源 . 详细信息部分用于显示数据表,其中表单的过滤器属性设置为用户条件 .
我无法进行设计1,因为我不知道如何动态设置子表单的数据源 . 我也无法进行设计2,因为即使我在设计视图中检查了表单页眉/页脚已启用,我的表单的 Headers 部分也没有出现 .
我能做些什么来实现我的表单设计?任何替代设计建议?
我正在使用Access 2003进行此开发,但我希望将来我的代码可以升级到Access 2010 .
提前感谢您的建议 .
1 回答
使用这两种设计,您应该动态构建数据源,如下所示:
最后,将sql分配给表单数据源 .
Design1
下面的代码以主要形式出现,就在上面的旁边:
Design2
要显示 Headers 部分中的控件,您需要将属性DefaultView设置为运行表单(我不知道extact转换,我使用西班牙语访问)在这种情况下,数据源被分配给主窗体
第三点:您可以使用构建计算字段
或者你可以使用conditional formatting . 我认为这个选项最清楚