【问题标题】:Access report "Can Grow" property needs to effect neighboring controls访问报告“Can Grow”属性需要影响相邻控件
【发布时间】:2011-12-27 07:19:29
【问题描述】:

我在“详细信息”部分中有一份包含大量控件的报告。 我正在处理一个作为示例提供给我的 word 文档,并且我几乎完美地在访问中重新创建了它。我现在需要的是一种处理溢出文本框的方法。我启用了“Can Grow”,但这是真正的问题:

我有一张假桌子。以在子表单中不起作用的方式排列的多个文本框。某些单元格具有红色、绿色或黄色背景,而其他单元格则只是纯白色。当其中一个文本字段溢出并“增长”时,同一行中的其他文本框保持与以前相同的大小,并且看起来非常非常奇怪(703 缇对 300)。我真的很喜欢它像 word/excel 中的表格一样工作,并且整行会立即增长(全部 = 703 缇),但看到它实际上不是我想要的“行”一种将这些文本框的高度相互关联的方法。

这样的事情可能吗?如果我需要澄清任何事情,请告诉我,我希望我已经提供了足够的信息。

【问题讨论】:

  • 您在哪里设置了“CanGrow”属性,用于详细信息部分,还是仅用于单个控件?看看设置整个部分的属性是否有帮助。
  • 它设置在整个细节部分以及其中的每个控件上。我知道问题是因为每个文本框都是独立的,我需要一种方法让它们一起成长,就好像它们是一张真正的桌子一样......

标签: ms-access textbox vba report


【解决方案1】:

我找到了适合我的情况的解决方案,但我想要一个更好的解决方案... 在我的例子中,左侧的 TextBox 描述了右侧 1 到 3 张图片的内容。文本框如果放大超过第一张图片的高度,则会将图片 2 和 3 向下移动,尽管图片控件中的 Top-Attribute 设计得当。

我的解决方案:我将文本框的高度属性设置为 15 厘米(例如 2 英寸)并将其启用为可收缩。 然而,这很奇怪,但这有助于将图片定位在所需的顶部位置... :-) 以及最小化使用的水平空间。

【讨论】:

    【解决方案2】:

    好的……

    1 - 进入报表的设计视图

    2 - 在详细信息部分中选择您希望成为表格的所有文本框控件,如果有任何一个增长,则所有文本框控件都会增长。

    3 - 右键单击​​选定的文本框控件之一并选择布局 -> 表格...。但是...现在...在您将文本框行控件作为表格布局之后...您必须执行一项还有更多...

    4 - 在您的报告中 FORMAT TAB 属性... 将所有 PADDING 属性设置为 0.00... 0.00 用于顶部填充,0.00 右侧填充,0.00 左侧填充和 0.00 底部填充。 (默认值通常在 0.0208 左右)

    5 - 请注意,将您的文本框更改为表格布局有点会将您的文本框扔到右侧(至少对我而言),因此您可能需要重新调整它们,以便它们再次与您的页眉文本框对齐(如果您有任何你可能用来为你的表命名的东西,比如列)。

    6 - 通过将底部栏(页面或报表页脚)紧贴在表格文本框布局的底部并与上部详细信息栏(页面或报表页眉)同上,确保删除详细信息区域中的所有空间.

    7 - 现在,当您以最大 200% 或更大的缩放比例在打印预览中查看报表时,您仍然会在布局中的单元格之间看到非常小的空间,但是当您实际打印时它们会除非你拿出放大镜,否则几乎不会被察觉。

    【讨论】:

      【解决方案3】:

      好的,我们开始吧。所以我有一个假表格,我需要它在每个文本框周围都有表格边框,当一个文本框比行中的其他文本框高时,边框看起来完全错误。所以,我们要做的就是在运行时在报表上绘制,这可以在任何视图中完成,包括打印预览。此代码必须放在 Print 事件中

      'step one. find out which box in the row has the greatest height value. 
      'You can come across this information however you want. 
      'It will likely depend on what data goes in the boxes.
      'For the sake of the answer length we will skip that actual code
      
      'step two. Take measurements and store them in variables.
      'You will need a start point, and an end point in standard (x1,y1),(x2,y2) form.
      Dim t As Integer 'top
      Dim l As Integer 'left
      Dim b As Integer 'bottom
      
      'step three. Use these measurements and draw your lines.
      'Try to use looping if your naming and report layout work will allow it.
      Me.Line (l, t)-(l, b), RGB(0, 0, 0)
      '       (x1,y1)(x2,y2),pick a color
      'We just drew a line straight down the length of the control
      'If you plan ahead, and place a line on the report permanently on top of the first row
      'and below every row, you will only need to draw vertical lines.
      'The lines below each row will be pushed down by the tallest control
      

      我希望这会有所帮助。我以前根本不知道这种东西存在。以下是有关它的 MSDN 信息:http://msdn.microsoft.com/en-us/library/aa221362%28v=office.11%29.aspx

      【讨论】:

      • 我的答案下面的答案也很有用,很多人只需要下面列出的内容
      【解决方案4】:

      在报表的设计视图中,选择详细信息部分中的所有文本框控件以及页眉部分中的所有标签。右键单击其中一个文本框控件并选择 Layout -> Tabular。控件和标签现在应该相互对齐。

      您尚未设置正在使用的 Access 版本,但这在 Access 2007 中有效。

      【讨论】:

      • 我实际上刚刚发现了另一种解决方法。表格布局非常接近我的需要,所以我会对此表示赞同,以便其他搜索的人会看到这个答案,以及我将发布的允许更多表格显示的答案。表格布局的唯一问题是控件之间存在我似乎无法摆脱的空间。除此之外,它绝对是完美的。
      • 我刚刚遇到了同样的问题。我想补充一点,我通过在表格布局中添加网格线,然后在某些表格单元格中将填充更改为 0" 来解决间距问题。我更改了网格线颜色,现在看起来就像它一样之前除了整行随内容增长。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多