0
|
Dan TheCodeJunkie · 技术社区 · 15 年前 |
![]() |
1
2
检查报表记录集中的值的唯一方法是将字段绑定为报表上控件的控制源。如果字段不需要打印在报表上,则必须添加一个不可见控件。决定是将它放在表单的页眉/页脚还是细节中,这将取决于报表的布局以及您试图检查的数据类型。 您以前可以在A97中直接执行此操作(没有隐藏的控件),但结果常常令人困惑,因为报表后面的数据缓冲区通常比屏幕上显示的内容提前一个记录。 此外,您还必须小心尝试使用哪些事件,因为报表中的数据与显示的内容的关系与窗体中的情况有很大的不同。也就是说,某些事件不能引用数据或控件,因为它们发生在控件不真正存在(或没有任何数据)的时候。 通常,我在报表中使用的唯一事件是OnOpen、OnNoData、OnClose和详细信息的OnFormat事件,我使用它们设置记录源、控制源、控制宽度/可见性和绘制线条,而其他事件则不多。 编辑:在另一个答案中,@guinnessfan指出了一些我不知道的事情,也就是说,如果您对报表有一个控件,它绑定到代码中要引用的基础字段,则可以这样做。例如,如果在底层记录源中有一个名为“phone”的字段,并且绑定了一个控件“txtphone”,则可以引用我!直接用密码打电话。 我的猜测是,正在进行的是,Access只为用作控制源的字段(即,旧的隐藏属性,这就是为什么您可以对像me.phone这样的引用进行编译时检查)设置一个vba可用的包装器。 但在代码中使用底层记录源的值仍然是如此,必须有一个以该字段作为控制源的控件,不管它是否隐藏。新的信息是,不必使用控件名来获取值。这意味着可以区分字段的显示值和报表后面记录集中的值,这些值并不总是一致的。我认为,一般来说,在大多数情况下,您都希望使用控件值,因为不清楚基础记录源的光标是否与正在显示的记录在同一个记录上。此外,如果对在一个页面上显示多个记录的报表使用页级事件,那么从哪个记录获取数据就不明显了。 |
![]() |
2
-1
如果你每次看到报告都想做点什么,丹
对于类似“我希望此字段具有红色文本”的内容,您应该研究条件格式。 使用细节格式而不是打印。[MyFieldName]而不是Me.MyFieldName |
![]() |
CPS · 当变量值为空时,在另一个变量中赋值 2 年前 |
![]() |
xris23 · 通过VBA选择命名范围,让用户直接编辑单元格 2 年前 |
![]() |
Stormer · 从Access格式化Excel单元格无效 2 年前 |
![]() |
j johns · 通过VBA将ascii art添加到命令提示符 2 年前 |
![]() |
BinaryCat · Excel-将单元格转换为具有成对数据的行 2 年前 |
![]() |
Waleed · 以下拆分函数的(0)表示什么? 2 年前 |
![]() |
smrmodel78 · VBA创建表格未选择正确的范围 2 年前 |