2013-09-18 11 views
1

Я пытаюсь проверить, пусто ли поле списка. Я видел рекомендация использоватьПроверить для списка формы формы доступа нет выбора

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

, но это возвращение MsgBox ошибки, даже когда элементы выбора.

Другая проблема, которую я использовал при использовании другого кода If txtLevel.ListIndex = "-1" или If txtLevel.listount = 0, хорошо работает в первый раз, но если вы выберете и затем отмените выбор, это не вызывает сообщение об ошибке.

Edit: ответ для меня это работает так: If txtLevel.ItemsSelected.Count = 0

ответ

1

Вы также можете использовать .ItemsSelected свойство, которое возвращает вариантный массив, который содержит номер строки из записей, которые выбираются, или .Selected свойство, которое возвращает True когда выбрана строка, указанная в параметре.

+0

Было бы что-то вроде If txtLevel.ItemsSelected = 0 then? – bigtree53

+0

Это оказалось .ItemsSelected.Count, который работает для меня. Затем! – bigtree53

+0

Не могли бы вы поддержать все полезные ответы и принять самое полезное? Это гарантирует, что наилучшие ответы будут отображаться первыми, и ответы на вопросы не отображаются в оставшихся без ответа списках. –

0

Попробуйте этот код - посмотрите, сможете ли вы видеть это решение. Я оставил комментарии, чтобы объяснить, что происходит.

  • ComboData является контроль выпадающий
  • CheckNoComboData является элементом управления CheckBox
  • CheckSelection является контроль флажок
  • CheckNoSelection является элементом управления CheckBox

Код:

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 
0

Ответ, который работает is «Если txtLevel.ItemsSelected.Count = 0»

Смежные вопросы