0

我有一个文本框JobForm2我有多个文本框Form1

假设form1我有Textbox1which is RollFromInventory, Textbox2is RollFromMachine1, Texbox3isRollFromMachine2等等,假设有 4 台其他机器,所以有 4 个其他文本框。

当我想在 中填充文本框JobForm2,我想编写一个If循环,该循环应该查找其中填充form1了值的文本框(在所有可用文本框中只有一个文本框将具有值form1),即要么RollFromInventory有价值,要么RollFromMachine1有价值,要么RollFromMachine2..

我不确定循环逻辑,所以我真的不知道如何去做。

目前我编写的代码主要用于填充连接值(我没有提供该代码,因为它会使目标看起来很复杂)。

4

2 回答 2

0

最简单的方法可能是使用类似于以下的语句填充文本框的控制源:JobForm2Switch

=Switch(
    [Forms]![Form1]![RollFromInventory] is not null, [Forms]![Form1]![RollFromInventory],
    [Forms]![Form1]![RollFromMachine1]  is not null, [Forms]![Form1]![RollFromMachine1],
    [Forms]![Form1]![RollFromMachine2]  is not null, [Forms]![Form1]![RollFromMachine2],
    [Forms]![Form1]![RollFromMachine3]  is not null, [Forms]![Form1]![RollFromMachine3]
)

不过,这并不是特别漂亮,而且界面设计很糟糕——听起来像是一组单选按钮和单个文本框更适合这种情况。

如果您想在 VBA 中实现这一点,您可以使用一组嵌套If语句或Nz表达式,例如:

Forms![PrinterWaxLabel].JOB = Nz(Nz(InvPW, FHPW), WxPW)
于 2019-05-27T18:17:04.500 回答
0

我写了一个代码来实现我想要的:

If Len(Me.InvPW.Value & "") > 0 Then
Forms![PrinterWaxLabel].JOB = Me.InvPW.Value

Me.JOB.SetFocus

Else

If Len(Me.FHPW & "") > 0 Then

Forms![PrinterWaxLabel].JOB = Me.FHPW.Value

Me.JOB.SetFocus

Else

If Len(Me.WxPW.Value & "") > 0 Then

Forms![PrinterWaxLabel].JOB = Me.WxPW.Value

Me.JOB.SetFocus

End If

End If

End If
于 2019-05-28T20:15:43.867 回答