MS ACCESS多个记录可见性如果声明

时间:2013-08-22 14:54:34

标签: ms-access access-vba visibility

我正在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,以便它可以判断“其他”是否在字段中。

1 个答案:

答案 0 :(得分:1)

我不确定我对您的问题有多了解,但我觉得您的表单包含2个名为 DefectType 其他的文本框。当 DefectType 的值为“其他”时,您希望显示其他文本框中的值。但是当 DefectType 的值为其他值时,您希望显示 DefectType 的值。

如果这是正确的,您可以创建一个名为 txtSummary 的新文本框,并将其用作其控件来源属性。

=IIf([DefectType] = "Other", [Other], [DefectType])

txtSummary 文本框无法编辑。要更改其值,您可以更改 DefectType 和/或其他中的值。

该方法将确保 txtSummary 始终根据同一记录中 DefectType Other 的当前值进行更新。它将对表单中的每条记录执行此操作,包括表单处于连续表单或数据表视图中时。

只有当表单处于单一表单视图中时,您的原始方法才会执行我认为您想要的操作。