【问题标题】:Reference fields in subform query (ms Access)子表单查询中的引用字段 (ms Access)
【发布时间】:2016-02-15 07:48:24
【问题描述】:

我有一个表单frmResults,其中包含一个子表单控件frmResultsSub

frmResultsSub 是一个包含查询而不是表单的子表单控件。换句话说,它的 SourceObject 属性设置为查询“Query.qrySearch

有什么方法可以引用这个查询的字段,例如使文本居中或更改字段宽度?

我在frmResults 的公开活动中尝试了这些语句,但都没有成功:

Me!frmResultsSub.fldA.Width = 600
Me.frmResultsSub.fldA.Width = 600

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    引用查询中的 fldA 字段,就像它是包含在该 frmResultsSub 子表单控件中的表单上的文本框的名称一样。

    把它放在 On Load 并验证它会显示字段名称而不是触发错误...

    MsgBox Me!frmResultsSub!fldA.name
    

    一旦您的工作正常,您就可以使用列的属性。在加载时,调整其ColumnWidth 属性以改变其宽度...

    Me!frmResultsSub!fldA.ColumnWidth = 600
    

    这应该允许您设置宽度。但是您还提到了文本对齐,除非您根据查询创建实际表单,否则我不知道如何为查询列执行此操作。

    【讨论】:

    • 非常感谢大家在这里的帮助。如上所述,Me!SubFqrySearchHLA!DonorAx.ColumnWidth = 600,在 On Load 事件中工作(忘记调整字段/表单名称 - 感谢您看到混乱!)。现在可以自定义所有字段宽度。我应该做的是将查询输出变成一个连续的形式,这将提供更多的格式/自定义/演示可能性。但是,该查询会产生可变数量的字段(向导根据上次运行的查询设置控件)。我可以通过 VBA 为每个显示创建一个新的连续表单,或者可能有更简单的方法。
    【解决方案2】:

    我认为您不能使用 VBA 调整查询的列宽。但是,您可以使用以下方法之一解决您的问题:

    • 创建一个表单(AutoForm 可以)并将其默认视图设置为数据表。然后将该表单用作子表单控件的源。这将在视觉上与您当前的解决方案相同。
    • 使用列表框而不是子表单。它非常通用,您可以轻松地将列表框rowSource 设置为任何 SQL 语句。您必须处理与主表单数据的同步,但这非常简单。

    【讨论】:

      【解决方案3】:

      试试这个:Me.frmResultsSub.Form.fldA.Width = 600

      【讨论】:

        猜你喜欢
        • 2015-12-18
        • 2023-04-07
        • 1970-01-01
        • 2017-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多