【问题标题】:How to populate the value of a Text Box based on the value in a Combo Box in MS Access 2007?如何根据 MS Access 2007 中组合框中的值填充文本框的值?
【发布时间】:2011-09-19 08:38:03
【问题描述】:

我有一个查找类型的组合框,即,我已将源选择为表中的列,并将所选值存储在另一个表中。我正在查找的表有另一列,我需要将此列中的值显示在文本框中,每次更改组合框中的值时,都需要在文本框中显示相应的值。我怎样才能做到这一点?到目前为止,我所做的是编写一个Select 查询,该查询根据组合框的值选择适当的列。有没有更体面的方法来做到这一点?请帮帮我!

【问题讨论】:

    标签: forms ms-access combobox ms-access-2007


    【解决方案1】:

    在阅读了问题和答案后,我尝试了以下方法,它似乎运行良好(到目前为止):

    为了显示多于一列的组合框选择,我采用了以下方法:

    在组合框上方放置一个文本框, 通过对其他字段进行采样来调整大小,使其覆盖组合框的文本框。 我特意在 NEW 文本框的右侧留了一个小空间来表明它 不是组合框的一部分。

    在文本框的控制源中输入以下表达式:

    =[DefaultAcct].[Column](1) & "  " & [DefaultAcct].[Column](2)
    

    然后,在组合框的“onchange”事件中,将焦点设置到文本框。

    Private Sub DefaultAcct_Change()
        txtConcatenate1.SetFocus   
    End Sub
    

    【讨论】:

      【解决方案2】:

      使用组合框的事件会更好,例如onChange,因此当进行选择时,事件会设置文本框的值。

      me!txtTextBox1 = me!cboComboBox1.column(1)
      

      这样每次都能正常工作。

      您也可以使用带有 onClick 等的按钮,但选择权在您手中(如上一篇文章所述,根据行源更改列号,第一个为 0。

      【讨论】:

      • 设置一个未绑定的文本框以依赖于@iDevlop 所示的组合每次都可以完全没有代码,所以这是一个更好的解决方案,恕我直言。
      【解决方案3】:

      将组合框的来源设为您的 2 个字段,例如SELECT id, name FROM Customers
      确保将组合的列计数属性相应地设置为 2。
      然后让你的未绑定文本框源等于=MyCombo.Column(1)(根据记忆,此列是从零开始的)。
      就是这样,需要零代码。

      【讨论】:

      • @iDevelop:谢谢!谢谢!谢谢! :)
      • 我试过这个方法。但它仅在第一次创建时才有效。当我关闭并重新打开它时,已设置为ComboBox.Column(1) 的文本框显示#Name?。为什么会这样?怎么了?
      • 谢谢你救了我几个小时 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      相关资源
      最近更新 更多