0

我有一个 Access 2003 项目 (.ADP),它是 SQL Server 2005 数据库的前端。

在这个 ADP 中,我有一个报告,它是一组 8 个未绑定的文本框,彼此堆叠在一起,每个都有自己的标签。每个文本框用于指示将处理订单的 8 个不同部门。

此报告会填充适当的数据,并在单击表单中的按钮时显示给用户。

很少有 8 个盒子同时获得值。大多数时候,只有 2 或 3 个框有值。

鉴于此,是否有可能以某种方式实现盒子的流畅布局?即,隐藏没有要显示的值的框,而不是显示空白区域,报告应该向上移动隐藏框下方有说明的框。

是否可以通过一些迂回的 VBA 代码?如果没有,我可以尝试什么其他选择?谢谢你。

编辑 - 报告和文本框仅用于呈现数据。

4

1 回答 1

1

通过将文本框的“Can Shrink”属性设置为“Yes”,然后将以下代码添加到On FormatDetail 带的事件中,我能够创建您描述的效果

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
Me.lblAccounting.Visible = Not IsNull(Me.txtAccounting.Value)
Me.txtAccounting.Visible = Not IsNull(Me.txtAccounting.Value)
Me.lblFinance.Visible = Not IsNull(Me.txtFinance.Value)
Me.txtFinance.Visible = Not IsNull(Me.txtFinance.Value)
Me.lblMarketing.Visible = Not IsNull(Me.txtMarketing.Value)
Me.txtMarketing.Visible = Not IsNull(Me.txtMarketing.Value)
Me.lblOperations.Visible = Not IsNull(Me.txtOperations.Value)
Me.txtOperations.Visible = Not IsNull(Me.txtOperations.Value)
End Sub

对于测试数据

ID  Accounting  Finance  Marketing  Operations
--  ----------  -------  ---------  ----------
 1  a1          f1                  o1        
 2              f2       m2                   

我在Print Preview中得到以下结果。我正在使用 Access 2010,这些On Format调整显然在“报告视图”中不起作用,但在打印预览中我得到:

收缩框.png

您会注意到,如果其中一些被“挤出” ,其余的框可能不会完全匹配。如果您的报告可以在文本框本身没有边界的情况下进行,那么这种差异几乎不会引起注意。否则,您将不得不调整布局,直到它看起来不错(或至少“足够好”)。这就是数据库报告的方式:花半个小时让这个东西工作,然后再花两个小时摆弄它,让它“看起来不错”。

于 2013-05-23T19:42:55.630 回答