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 - 如何在点击事件中以编程方式访问子表单列数据