我在Job
中有一个文本框Form2
,在Form1
中有多个文本框。
在form1
中,我有Textbox1
,即RollFromInventory
,Textbox2
是RollFromMachine1
,Texbox3
是RollFromMachine2
,依此类推,假设还有其他四台计算机,那么还有四个文本框。
当我想在Job
中填充文本框Form2
时,我想编写一个If
循环,该循环应在{{1 }}(在form1
中所有可用文本框中只有一个文本框将具有值),即form1
将具有值或RollFromInventory
将具有值或{ {1}} ..
我不确定循环逻辑,所以我真的无法弄清楚该怎么做。
目前,我编写的代码主要用于填充级联值(我不提供该代码,因为这会使目标看起来很复杂)。
答案 0 :(得分:0)
最简单的方法可能是使用类似于以下内容的Switch
语句在Job
的{{1}}文本框中填充控制源:
Form2
尽管这不是特别漂亮,而且界面设计也很差,听起来像是一组单选按钮和一个文本框更适合这种情况。
如果要在VBA中实现此功能,则可以使用一组嵌套的=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]
)
语句或If
表达式,例如:
Nz
答案 1 :(得分: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