Ms access 在多列组合框中选择不同的项目不会';t更新显示的值-Access 2016
我有一个3列的组合框。我在该组合框上有一个Ms access 在多列组合框中选择不同的项目不会';t更新显示的值-Access 2016,ms-access,combobox,Ms Access,Combobox,我有一个3列的组合框。我在该组合框上有一个Change()事件侦听器,每次单击一个新项目时都会触发该侦听器。我第一次单击该项时,它检索值并相应地更新其他文本框,如下所示: Private Sub cb1_Change() If cb1.Value = "" Or IsNull(cb1.Value) Then tb1.Value = "" tb2.Value = "" tb3.Value = "" Else tb1.V
Change()
事件侦听器,每次单击一个新项目时都会触发该侦听器。我第一次单击该项时,它检索值并相应地更新其他文本框,如下所示:
Private Sub cb1_Change()
If cb1.Value = "" Or IsNull(cb1.Value) Then
tb1.Value = ""
tb2.Value = ""
tb3.Value = ""
Else
tb1.Value = cb1.Column(0)
tb2.Value = cb1.Column(1)
tb3.Value = cb1.Column(2)
End If
End Sub
假设我选择包含此信息的项目:2017年1月1日。它将分别用1、1、2017填充tb1、tb2和tb3。如果我单击另一个项目,例如2、2、2018,则会触发更改事件,并进入Else
语句。但是,cb1.Column(0)
,cb1.Column(1)
,cb1.Column(2)
,仍然返回值1、1、2017,而不是2、2、2018
为什么这些值没有在以后每次单击时更新?这里是;-)
每次击键都会触发change事件,但此时不会保存数据,因此不会更新基础列数据以反映未保存的已更改显示值
AfterUpdate事件仅在数据保存后触发(Dirtie可能是正确的技术术语),因此您正在使用的列数据现在也会更新,以反映保存的值。尝试使用AfterUpdate事件,而不是change事件。@Minty,如果您能解释为什么这样做以及为什么
change()
答案中没有,我接受。