使用子表单上列表框选择的值填充文本框
Posted
技术标签:
【中文标题】使用子表单上列表框选择的值填充文本框【英文标题】:Populate textboxes with value from listbox selection on child form 【发布时间】:2015-04-27 17:53:29 【问题描述】:我知道这个问题以前有人问过,我尝试了很多建议,但我想我在 VBA 编码方面太新手了。
这是我的场景: 我有一个带有几个表单的 Access 2007“应用程序”。在主窗体上,我有 2 个文本框。为简单起见,我们称它们为 textbox1 和 textbox2。
textbox1 用于输入样式代码。主窗体上的一个按钮然后以模态/对话框模式打开另一个按钮,并使用样式代码作为 where 子句运行查询。模式弹出窗口为我提供了一个列表框,该列表框根据传递的查询从数据库中填充。然后,我需要在列表中选择一种产品,并在关闭弹出窗口后,使用品牌(弹出列表中的列表中的第 2 列)编号填充 textbox2。
请记住我是新手。任何帮助将不胜感激。
【问题讨论】:
“我知道这个问题以前被问过” - 那你为什么又问这个问题? -- 重复的问题通常会从 Stack Overflow 中删除。 【参考方案1】:我会在第二个表单上放一个按钮,然后在 _Click() 函数中放这样的东西
If ListBox1.ListIndex = -1 Then
MsgBox "Nothing Selected!"
Exit Sub
End If
UserForm1.TextBox1.Text = ListBox1.List(ListBox1.ListIndex)
Unload Me
其中 ListBox1 是包含您需要用户从中选择的内容的列表框,其中 UserForm1 是调用表单的名称,TextBox1 是名称。
说明 列表框的 ListIndex 属性返回所选列表项的索引。如果未选择任何内容,则返回 -1。 要从另一个引用一个项目,您需要引用表单、对象和属性。
在我给出的例子中,表单是UserForm1,对象是TextBox1,属性是Text。键入时,智能感知应在您键入句点后自动完成对象和属性。
【讨论】:
感谢您的回复 Andrew,但我收到“未找到方法或数据成员”,并且突出显示的字段是 Unload Me 之前的行中的 .List。这是我的代码: Private Sub lookupSelectBtn_Click() If styleLookupList.ListIndex = -1 Then MsgBox "Nothing Selected!" Exit Sub End If Main.brandSkuTxt.Text = styleLookupList.List(styleLookupList.ListIndex) Unload Me End Sub 几个问题。首先,“Main”是主用户窗体的名称吗?两者都在同一个工作簿中吗? 是的。 Main 是主要的用户窗体。不,它们不在同一个工作簿中。它是 Access 中的不同形式。我在 main 上有一个按钮,它在模态视图中调用第二种形式以上是关于使用子表单上列表框选择的值填充文本框的主要内容,如果未能解决你的问题,请参考以下文章
访问 VBA - 使用 VBA 的 SQL 语句使用文本框组合框值在表单上填充列表框 OR