1

我正在 Access 2013 中构建一个表单,我将为每条记录打印 4 个字段。

因此,假设表单处理 2 条记录,它将打印出来:

Field 1   Field 2   Field 3  Field 4
Field 1   Field 2   Field 3  Field 4

现在我想在它显示 Other 时让它从表中打印出另一个的描述。为此,我希望名为 DefectType 的字段不可见,然后将 Other 字段变为可见。我从 Other is invisible 和 DefectType Visible 开始,然后将它们放在一起。这是VBA:

If DefectType <> "Other" Then
DefectType.Visible = True
Other.Visible = False
Else
DefectType.Visible = False
Other.Visible = True
End If

如果它们都是其他的,它可以正常工作,因为它会采用其他的第一个记录值并将其应用于该字段的所有其他记录。

因此,如果显示的第一条记录有一个字段 3 并且它的值为 Other 它将在“其他”字段下的表中查找值并显示内容。所以可以说“其他”内容是层压。它不会显示“其他”,而是会使该 DefectType 字段不可见并显示“其他”字段,该字段将显示 Lamination。
问题是它对其余的记录执行此操作。它不会测试字段 3 是否为“Other”,它只会假设并将其放入“Other”字段内容以供后续记录。这意味着,由于其中一些实际上已经有值,例如腐蚀,而“其他”字段中没有任何内容,它将显示一个空白框。

我希望它在显示时测试每个字段 3,以便它可以判断“其他”是否在该字段中。

4

1 回答 1

1

我不确定我对您的问题的理解程度,但在我看来,您的表单包含 2 个名为DefectTypeOther的文本框。当DefectType的值为"Other"时,您希望显示来自Other文本框的值。但是当DefectType的值是其他值时,您希望显示DefectType的值。

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

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

txtSummary文本框将不可编辑要更改其值,您将更改DefectType和/或Other中的值。

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

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

于 2013-08-22T15:45:50.913 回答