我想在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? –