更新组合框的显示

时间:2015-10-26 11:11:57

标签: ms-access access-vba

我有一个包含多个组合框的表单,这些框有2列列表,其中列0宽度为零。所有这些框都具有为其下拉列表值定义的行源。

当我尝试通过vb代码覆盖组合框的显示值时,它适用于少数控件,而其余部分则不执行任何操作。所以我做了一个孤立的代码只是为了更新所有组合框(cbo)的值,并再次使用相同的控件传递/失败。这是我正在尝试使用的代码,任何人都可以告诉我为什么我无法更新某些组合框而其他人工作得很好?

谢谢!

Sub test()

Dim Ctrl As Control
Dim CtrlName_Combined as String

For Each Ctrl In Forms("frmNewTransaction").Controls

'Name of all combo boxes start with 'cbo' 

If Left(Ctrl.Name, 3) = "cbo" Then
Ctrl = "Hello"
CtrlName_Combined = ctrlName_Combined & Ctrl.Name & " "
End If

Next Ctrl

MsgBox CtrlName_Combined

End Sub

以下是代码运行后表单的屏幕截图(所有组合框以cbo开头): enter image description here

1 个答案:

答案 0 :(得分:0)

谢谢你们的帮助。当我执行时很少有组合框没有取值时,问题就出现了:

forms("FormName").Controls("ComboBoxName")="Some Value which was in the list"

所以我通过传递它们来测试我所有的组合值"你好"我知道这不是他们的行来源。奇怪的是,很少有组合响应而其他组合则没有。这是兔子洞,因为我的所有组合配置与行源查询相同,但都有ID和eName列。

问题是很少有组合没有采用我传递给他们的文本值,但事实证明,如果我根据他们开始响应的第一列给出了他们的数值(我在这里得到的是一些组合如何表现单向和以另一种方式休息)

无论如何,这帮助我解决了这个问题,以为我应该在打扰你之后分享这个问题。

此外,我发现社区没有很好地接受这个问题或方式,如果有人指出将来不能参考的内容会有所帮助

再次感谢!