我想在Form_Load()
的多选组合框中选择Persons_Form!ID
中的ID
。多选组合框设置选定属性True
下面的代码执行得很好。消息框确实会弹出;但是,该值始终为false,并且复选框在组合框中未勾选,即使将其设置为True。
我的预期行为是在代码运行后检查它,并在MsgBox中返回True。为了获得预期的行为,我需要改变什么?
Private Sub Form_Load()
If ID.Value >= 0 Then
Beep
Else
Beep
With person
.SetFocus
For x = Abs(.ColumnHeads) To (.ListCount - 1)
If (.ItemData(x) Like Forms!Persons_Form!ID.Value) Then
.Selected(x) = True
MsgBox (.Selected(x))
End If
Next
End With
End If
End Sub
把代码打破在 “如果(.ItemData(x)的像......” 行,然后将鼠标悬停在这两个 “.ItemData(X)” 和“形式!Persons_Form!ID .Value“,它会告诉你Access认为这两个值是什么。然后按F8逐句通过代码,并检查每个循环的值。你可能会马上看到你做错了什么,或者Access不喜欢什么。 –
访问“喜欢”代码。 IF语句中的代码在正确的时间执行。 x被分配给正确的索引。 Selected(x)确实返回复选框的当前状态,赋值语句不会导致错误。然而在赋值语句Selected(x)之后仍然返回false。 – Roger
所以你说它击中设置的行.Selected(x)= true,它仍然弹出一个框,说.Selected(x)= false? –