使用子表单上列表框选择的值填充文本框

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

如何根据每条记录的连续表单中 ms-access 中的其他值填充文本框上的值

通过表单事件过程中的函数填充访问文本框

在文本更改时访问文本框的复制值

MVC 4,选择自动完成值时如何填充 3 个文本框?

访问使用列表框中选择的项目更新子表单