如何在 Access 2010 表单上显示“相关数据”

Posted

技术标签:

【中文标题】如何在 Access 2010 表单上显示“相关数据”【英文标题】:How to display 'related data' on an Access 2010 form 【发布时间】:2013-01-28 14:00:17 【问题描述】:

在 Access 应用程序的表单上,我有一对级联组合框:一个未绑定(源)和一个绑定(信息,绑定到长信息 ID)。来源用于缩小信息中可用的选择范围,这是一个必填字段。表单上还有一个必填字段:标题。

为了确保用户对组合做出正确的选择,并在创建后查看每条记录时使用,我需要在表单上显示与每个组合中当前选择的值相关的只读信息。这包括一些富文本备注字段。此信息不是表单记录源的一部分(因为包含它会使记录集无法更新,更不用说影响性能,因为其中可能存在 很多 富文本备忘录)。用户可以双击这些有限大小的只读备忘录字段之一,以弹出一个弹出表单,该表单将同时显示更多文本。

我首先尝试将组合定义为包含多个包含必要数据的隐藏列,并在表单上只读字段的公式中使用这些隐藏列。这会截断富文本备注字段。不行。

然后我尝试使用链接到组合的子表单(没有边框,因此它们看起来像表单的一部分)来显示数据。这可行,但有副作用,如果用户单击子表单内的字段,他们可能会收到一条消息,告诉他们主表单上的另一个必填字段尚未完成(因为将焦点移到子表单尝试保存主表单)。但是,如果他们单击主窗体中的其他字段,则在相同情况下不会出现相同的错误。不一致,并且可能使用户发疯(在测试期间让我发疯)。再一次,不行。

是否有另一种技术可以让我显示完整的富文本字段但避免子表单的缺点?

【问题讨论】:

【参考方案1】:

听起来您希望用户查看但不编辑关联的富文本备忘录内容。在信息组合框的更新后事件中,使用DLookup() 检索备注字段内容并将富文本加载到文本框中。

假设InformationID也存在于包含备注字段的表中,并且是数字数据类型...

Me.txtDetails = DLookup("memo_field", "table_name", _
    "InformationID = " & Me.cboInformation)

如果InformationID 是文本,请在DLookup 表达式的最后一段中添加引号。

    "InformationID = '" & Me.cboInformation & "'")

您可以在表单的 On Current 事件中执行相同的操作,以便用户在记录之间导航时可以看到这些详细信息。

【讨论】:

【参考方案2】:

我终于采用了https://***.com/a/14566357/1943174 给出的答案的变体。 我没有编写表单的 On Current 事件和 Information 组合框的 After Update 事件来更新文本字段,而是将文本字段创建为计算字段,并将控制源设置为

=IIf(IsNull([Information]),"",DLookup("memo_field","table_name","[InformationID] = " & [Information]))

每当记录更改或信息更新(或撤消)时,该字段都会更新。

【讨论】:

以上是关于如何在 Access 2010 表单上显示“相关数据”的主要内容,如果未能解决你的问题,请参考以下文章

#姓名?在 Access 2010 中重新查询后的表单上

在 microsoft access 2010 表单和报告中显示多个附件

MS Access 2010 - 如何根据以前的输入以编程方式显示表单字段?

当用户从 MS Access 的组合框中选择“其他”时,如何显示输入表单?

在 Access 2010 中查看时,Access 2007 表单中的幻影框

如何即时编辑 Access 报告?