2011-11-26 64 views
1

我使用Access 2010中创建几个报告的可见性,我无法弄清楚如何隐藏一组,如果其空标题。更改组头一个Microsoft Access报表

想象我有一个表,如(注:我什么都不知道关于汽车,其只是一个例子):

 
H1 | H2  | H3  | H4  | DATA1 | DATA2 | DATA3 
car | chassis | engine | pistons | data_a1 | data_a2 | data_a3 
car | chassis | engine | pistons | data_b1 | data_b2 | data_b3 
car | chassis | engine | pistons | data_c1 | data_c2 | data_c3 
car | chassis | engine | cylinder | data_a1 | data_a2 | data_a3 
car | chassis | engine | cylinder | data_b1 | data_b2 | data_b3 
car | interior |  | seats | data_a1 | data_a2 | data_a3 
car | interior |  | seats | data_b1 | data_b2 | data_b3 

我已经得到的顺序列H1,H2和H3的3名头。我的问题是,当H3不包含文本(即“”(我认为访问评估为空))我想隐藏H3的组标题,或者至少这样做,因此它不会在报告中留出空间。目前H3空白的地方,报告仍然包含一个空行。

我已经试过类似这种在GroupHeader3的油漆或打印事件

If IsNull([H3]) Then 
    Me.GroupHeader3.Height = 0 
    Me.GroupHeader3.BackColor = vbRed 
    Me.GroupHeader3.Visible = False 
Else 
    Me.GroupHeader3.Height = 5 
    Me.GroupHeader3.BackColor = vbGreen 
End If 

的想法似乎工作,那就是如果我注释掉可见=假线我得到一个红色或绿色的背景在正确的地方,但它完全忽略了高度选项。 如果我把它的Visible = False抱怨它不能放在Paint事件上。

我也试图把类似的代码在GroupHeader2的油漆事件,但无济于事。我得到的最接近的坐在那里闪烁。

我有点新的VBA所以我可能失去了一些东西很明显,但在现阶段,我真的不知道如何着手,因此任何帮助,将不胜感激。

编辑 为清楚:

该报告设计了一个有点像这样:因此,与示例数据

 
H1 
    H2 
      H3 
       H4 
        DATA1  DATA2  DATA3 

它上面将显示为:

 
car 
    chassis 
       engine 
         pistons 
           data_a1 data_a2 data_a3 
           data_b1 data_b2 data_b3 
           data_c1 data_c2 data_c3 
         cylinder 
           data_a1 data_a2 data_a3 
           data_b1 data_b2 data_b3 
    interior 

         seats 
           data_a1 data_a2 data_a3 
           data_b1 data_b2 data_b3 

其空白行(组头3)内部和我想避免的座位之间。 感谢

回答

3

您向我们展示的列标题不组头。如果其他头文件还在这里,它会改变H3的高度有什么意义?你无法以这种方式节省空间。

也许你想通过H3权由H3的宽度移动列到左躲整列H3。没有简单的方法来做到这一点。您将必须计算所涉及的文本字段和标签的位置,并相应地在OnFormat事件中更改其“左”位置。

编辑:

使用取消组头的格式事件过程的参数:

Private Sub GroupHeader0_Format(Cancel As Integer, FormatCount As Integer) 
    Cancel = IsNull(Me!H0) 
End Sub 

由于VBA代码永远不会在设计模式中运行时,你只能看到其效果打印预览和打印时。

+0

对不起,我不认为我解释得不够好,我的意思是我放在上面的表格是我用作报告基础的那种数据的一个例子。报告按H1分组,然后是H2分组,然后是H3以及报告中我想节省空间。谢谢 – m3z

+0

我已经提出了一个更好的例子 – m3z

+0

谢谢,你的编辑工作得很好。只是要注意其他人谁可能会尝试这一点,它只适用于打印预览和打印时。 – m3z

相关问题