Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在多列组合框中选择不同的项目不会';t更新显示的值-Access 2016_Ms Access_Combobox - Fatal编程技术网

Ms access 在多列组合框中选择不同的项目不会';t更新显示的值-Access 2016

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

我有一个3列的组合框。我在该组合框上有一个
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()
答案中没有,我接受。