1

リスト ボックスが空かどうかを確認しようとしています。私は使用するための推奨事項を見てきました

If IsNull(txtLevel) Then
    MsgBox "No Item is Selected"

ただし、アイテムが選択されている場合でも、これはエラー MsgBox を返しています。

他のコードを使用する際に発生した別の問題、If txtLevel.ListIndex = "-1"またはIf txtLevel.listount = 0最初はうまく機能しますが、選択してから選択を解除しても、エラー メッセージは表示されません。

編集:私にとってうまくいく答えは:If txtLevel.ItemsSelected.Count = 0

4

3 に答える 3

1

うまくいく答えは「If txtLevel.ItemsSelected.Count = 0」です

于 2013-09-19T16:53:27.537 に答える
1

.ItemsSelected選択されたエントリの行番号を含むバリアント配列を返す.Selectedプロパティ、またはTrueパラメーターで指定された行が選択されたときに返されるプロパティを使用することもできます。

于 2013-09-18T23:40:36.640 に答える
0

このコードを試してみてください - これであなたのソリューションを見ることができるかどうか見てください. 何が起こっているのかを説明するためにコメントを残しました。

  • ComboData はコンボボックス コントロールです
  • CheckNoComboData はチェックボックス コントロールです
  • CheckSelection はチェックボックス コントロールです
  • CheckNoSelection はチェックボックス コントロールです

コード:

  Dim intIter As Integer
  Dim boolItems As Boolean

  ' Check if there is no Row Source data
  If Nz(Me.ComboData.RowSource, "") = "" Then
    Me.CheckNoComboData = True
  Else
    Me.CheckNoComboData = False
  End If

  ' Check if there is a row source, but no
  ' items resulting from that rowsource
  If Me.ComboData.ListCount = 0 Then
    Me.CheckNoComboData = True
  Else
    Me.CheckNoComboData = False
  End If

  ' Check if any items in the listbox are selected or not
  Items = False
  ' Loop through each item in the combobox
  For intIter = 0 To (Me.ComboData.ListCount - 1)
    ' If its selected, then we know items are selected
    If Me.ComboData.Selected(intIter) Then
      Items = True
      Exit For
    End If
  Next

  ' Return Results
  Me.CheckSelection = Items
  Me.CheckNoSelection = Not Items
于 2013-09-19T15:43:55.327 に答える