2

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

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

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

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

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

4

2 回答 2

1

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

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

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

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

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

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

于 2013-01-28T16:17:51.813 回答
0

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

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

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

于 2013-08-21T08:54:42.597 回答