MS ACCESS - 如何在更改事件中获取未绑定组合框的当前列值

Posted

技术标签:

【中文标题】MS ACCESS - 如何在更改事件中获取未绑定组合框的当前列值【英文标题】:MS ACCESS - How to get the current columns values of an unbound combobox on Change event 【发布时间】:2020-07-07 23:44:43 【问题描述】:

我有一个包含 3 列的未绑定组合框:item、sn 和 cost。

我在其上添加了一个 Change 事件,当我从下拉组合中选择一行时,我需要将 3 个当前值全部放在一个文本框中,并分别放在其他 texbox 中。

例如:我点击组合框并从列表中随机选择一行

Private Sub combo_Change()
textbox1.value = 'current column1+col2+col3 values
text2.value= 'current col1 value
text3.value= ' current col2 value
text4.value= 'current col3 value
end sub

我该怎么做?

【问题讨论】:

为什么要使用 VBA?您是否要保存到表中的字段?为什么要将此计算的数据保存到表中?这会将数据复制到多个表中。需要时可以计算。这些表达式只能在文本框 ControlSource:=combobox1 & combobox1.Column(1) & combobox1.Column(2) 【参考方案1】:

试试下面的子。

Private Sub cmbItems_Change()
Dim str1, str2, str3

    str1 = Me.cmbItems.Column(0)
    str2 = Me.cmbItems.Column(1)
    str3 = Me.cmbItems.Column(2)
    
    Me.Text0 = str1 & ", " & str2 & ", " & str3
    Me.Text1 = str1
    Me.Text2 = str2
    Me.Text3 = str3

End Sub

【讨论】:

【参考方案2】:

通过索引引用组合框或列表框的列。索引从 0 开始,所以第 2 列是索引 1。

Me.textbox1 = Me.combobox1 & Me.combobox1.Column(1) & Me.combobox1.Column(2)

如果要添加,则必须转换为数字,因为所有列都是字符串。

Me.textbox1 = Val(Me.combobox1) + Val(Me.combobox1.Column(1)) + Val(Me.combobox1.Column(2))

【讨论】:

以上是关于MS ACCESS - 如何在更改事件中获取未绑定组合框的当前列值的主要内容,如果未能解决你的问题,请参考以下文章

MS-Access 2007 - 如何在点击事件中以编程方式访问子表单列数据

如何在连续子表单中使用未绑定复选框 - MS Access 2013

MS Access 2010:未绑定的组合框不会更新

MS Access中绑定/未绑定形式的问题

MS Access - 在设计时添加未绑定字段

如果表单未绑定,如何选择 MS Access 组合框中的第一项