根据带有if条件的多个文本框值将值分配给表单上的文本框-MS ACCESS
Posted
技术标签:
【中文标题】根据带有if条件的多个文本框值将值分配给表单上的文本框-MS ACCESS【英文标题】:Assign value to a text box on form based on multiple text boxex value with if condition - MS ACCESS 【发布时间】:2015-06-03 11:00:25 【问题描述】:让我解释一下,我的表单上有如下字段(文本框)
textbox1 = can hold Yes or NO
textbox2 = can hold Yes or NO
textbox3 = can hold Yes or NO
textbox4 = can hold Yes or NO
textboxResult
仅保存值为“是”的文本框的标签(标题)的连接值
我已经尝试了许多可能的解决方案(在我的脑海中),包括以下但没有运气。下面的代码也用 OR 运算符进行了测试。
If Me.textbox1.Value = "Yes" And Me.textbox2.Value = "Yes" And _
Me.textbox3.Value = "Yes" And Me.textbox4.Value = "Yes" Then
Me.textboxResult.Value = Me.Label1.Caption & "," &
Me.Label2.Caption & "," & Me.Lable3.Caption & "," &
Me.Label4.Caption
Else
Me.textboxResult.Value = "NA"
End If
我想为那些值为 YES 的文本框分配标签的标题。请帮忙
【问题讨论】:
您在说什么Caption
的文本框? Texboxes 没有标题!你只提到一次Labels
。您应该清楚Label
和Textbox
之间以及Value
和Caption
之间的区别! AND 包含一个示例预期结果 AND “但没有运气”是什么意思?它是否不起作用,是否崩溃,是否无法到达 if-body?
感谢 luk2302 及时回复。我也编辑了问题正文和代码以便清楚地理解。它可以工作,但不是我想要的工作方式。我只想连接(加入)那些带有 YES 值的文本框标签。
【参考方案1】:
如果我理解正确,您需要所有 TextBox 标签的连接值。所以一个批量AND
可能不是选项,也许检查每个控件。类似的东西。
Dim txtResult As String
If Me.textbox1 = "Yes" Then _
txtResult = txtResult & Me.textbox1.Controls.Item(0).Caption & ","
If Me.textbox2 = "Yes" Then _
txtResult = txtResult & Me.textbox2.Controls.Item(0).Caption & ","
If Me.textbox3 = "Yes" Then _
txtResult = txtResult & Me.textbox3.Controls.Item(0).Caption & ","
If Me.textbox4 = "Yes" Then _
txtResult = txtResult & Me.textbox4.Controls.Item(0).Caption & ","
If Len(txtResult) > 0 Then
Me.textboxResult = Left(txtResult, Len(txtResult)-1)
Else
Me.textboxResult = "NA"
End If
注意 - Me.TextBoxName.Controls.Item(0) 将返回带有TextBoxName
的关联标签。如果文本框没有关联,那么您可能会遇到错误。
编辑 - 编辑后,如果您只是想使用标签的标题,只需将 Me.textbox.Controls(0).Caption
替换为 Me.LableName.Caption
【讨论】:
这就是我所说的类似解决方案:D 很高兴为您提供帮助。 :) 祝你好运【参考方案2】:从你的评论来看,你不应该为每个文本框做一个组合的 if,而是 4 个单独的 if:
Dim txt As String
txt = ""
If Me.textbox1.Value = "Yes" Them _
txt = txt & Me.Label1.Caption & ", "
If Me.textbox2.Value = "Yes" Then _
txt = txt & Me.Label2.Caption & ", "
If Me.textbox3.Value = "Yes" Then _
txt = txt & Me.Label3.Caption & ", "
If Me.textbox4.Value = "Yes" Then _
txt = txt & Me.Label4.Caption & ", "
If Len (txt) > 0 Then
txt = Left(txt, Len(txt) - 2)
Else
txt = "NA"
End If
Me.textboxResult = txt
【讨论】:
绝对或类似伟大的思想相似 ;) 也感谢 luk2302 的帮助和解决方案 :)以上是关于根据带有if条件的多个文本框值将值分配给表单上的文本框-MS ACCESS的主要内容,如果未能解决你的问题,请参考以下文章
熊猫,我怎样才能避免使用 iterrow (如何根据来自另一个数据帧的值将值分配给数据帧中的新列)
如何从另一个输入文本字段Javascript中输入的值将值设置为输入隐藏字段