我正在Access 2013中构建一个表单,我将为每条记录打印出4个字段。
所以我们假设表单会处理它将打印出的2条记录:
Field 1 Field 2 Field 3 Field 4
Field 1 Field 2 Field 3 Field 4
现在我希望在显示“其他”时从表中打印出另一个的描述。为此,我希望名为DefectType的字段不可见,然后将其他字段变为可见。我从其他不可见和缺陷类型可见开始,并将它们放在彼此之上。这是VBA:
If DefectType <> "Other" Then
DefectType.Visible = True
Other.Visible = False
Else
DefectType.Visible = False
Other.Visible = True
End If
如果它们都是其他的,它可以正常工作,因为它的工作取得了其他的第一个记录值,并将其应用于该字段的所有其他记录。
因此,如果显示的第一条记录具有字段3且其值为“其他”,则它将在“其他”字段下的表中查找值并显示内容。可以说“其他”内容是层压的。它不会显示其他,而是会使该缺陷类型字段不可见,并显示将显示覆膜的“其他”字段 问题是它是否会对其余记录执行此操作。它不会测试是否字段3是否为“其他”,它只是假设,然后将其为其他记录的“其他”字段内容。这意味着,由于一些实际上已经有了值,如腐蚀,而“其他”字段中没有任何值,它将显示一个空白框。
我希望它在显示时测试每个字段3,以便它可以判断“其他”是否在字段中。
答案 0 :(得分:1)
我不确定我对您的问题有多了解,但我觉得您的表单包含2个名为 DefectType 和其他的文本框。当 DefectType 的值为“其他”时,您希望显示其他文本框中的值。但是当 DefectType 的值为其他值时,您希望显示 DefectType 的值。
如果这是正确的,您可以创建一个名为 txtSummary 的新文本框,并将其用作其控件来源属性。
=IIf([DefectType] = "Other", [Other], [DefectType])
txtSummary 文本框无法编辑。要更改其值,您可以更改 DefectType 和/或其他中的值。
该方法将确保 txtSummary 始终根据同一记录中 DefectType 和 Other 的当前值进行更新。它将对表单中的每条记录执行此操作,包括表单处于连续表单或数据表视图中时。
只有当表单处于单一表单视图中时,您的原始方法才会执行我认为您想要的操作。