Есть ли способ ограничить количество выборов, которые пользователь может выбрать в ListBox с включенным MultiSelect в Access 2003? Прямо сейчас у меня есть процедура, которая срабатывает при событии On Click, которая проверяет количество выбранных вариантов, и если она превысит мой порог, будет отображаться предупреждающая метка.Ограничить количество выборов в MultiSelect ListBox в доступе?
ответ
Дайте этому попытку. Это в основном отменяет последний выбранный элемент, если его в течение заранее определенного предела:
Private Sub ListBox1_Change()
Dim counter As Integer
Dim selectedCount As Integer
selectedCount = 0
For counter = 1 To ListBox1.ListCount Step 1
If ListBox1.Selected(counter - 1) = True Then 'selected method has 0 base
selectedCount = selectedCount + 1
End If
Next counter
If selectedCount >= 4 Then 'modify # here
ListBox1.Selected(ListBox1.ListIndex) = False 'listindex returns the active row you just selected
MsgBox "Limited to 4 Choices", vbInformation + vbOKOnly, "Retry:"
End If
End Sub
Использование списка товаровВыбранная коллекция? Это единственный способ ограничить количество выбранных элементов. OTOH есть некоторые действительно искривленные люди, которые могли бы найти альтернативу, поэтому я никогда не говорю никогда.
В чем проблема с этим методом?
Я предполагаю, что OP хотел бы либо запретить выбор более чем N выбора или, по крайней мере, снять отмену последнего выбора, когда они отбросят свое сообщение об ошибке/предупреждении. – BIBD
Вы можете использовать событие BeforeUpdate для списка listbox.ItemsSelected.Count. Если это превысило ваш лимит, вы отмените выбор (с помощью listbox.Selectec (item) = False) текущего и отмените событие.
Вот пример: Private Sub lstItems_BeforeUpdate(Cancel As Integer)
' Warn the user that only x items can be selected.
' ------------------------------------------------
If lstItems.ItemsSelected.Count > MAX_SELECTED_ITEM_PERMITTED Then
MsgBox "You can only select " & MAX_SELECTED_ITEM_PERMITTED & " items in this list.", vbOKOnly + vbInformation, "Error"
' Unselect previously selected item.
' ----------------------------------
lstItems.Selected(lstItems.ListIndex) = False
Cancel = True
End If
End Sub
Можете ли вы написать очень простой пример этого? – mandroid
Я бы предположить, что гораздо более управляемым, удобный и понятный UI для этого будет парный ListBox подход, с ADD> и кнопок после того, как пользователь достиг предела. Вам не нужно ничего делать, просто проверьте ListCount правого списка и отключите кнопку ADD>, когда он достигнет предела.
И вы избегаете многих проблем, так как пользователю совершенно ясно, что они делают по сравнению с выбором нескольких элементов одновременно в одном списке. Вы можете сделать многосегмент левого списка и просто отключить кнопку ADD>, если счетчик ItemsSelected превысит лимит и соответствующим образом сообщит об этом пользователю.
- 1. ограничить максимальное количество выборов в zend multiselect
- 2. Multiselect WPF Listbox Сделайте несколько выборов одним щелчком мыши
- 3. ListBox (multiselect) выбранные индексы
- 4. VB Проверьте, есть ли Multiselect в Listbox
- 5. C# listbox multiselect, selectedItems winforms
- 6. C# webbrowser html listbox multiselect
- 7. jQuery juery with multiselect listbox
- 8. Как ограничить количество выборок в списке tkinter?
- 9. select2 multiselect параметры фильтра на основе предыдущих выборов
- 10. Максимальное количество записей в ListBox
- 11. Отключение MultiSelect в Listbox без преобразования в DropDownList
- 12. Как получить все значения, выбранные в Multiselect ListBox в vb6?
- 13. Получение ошибки в multiselect ListBox в VB.Net ASP.Net Webform
- 14. Изменить кнопку отправки, чтобы узнать количество выборов
- 15. MultiSelect ListBox Select And DeSelect Event
- 16. Windows Phone MultiSelect ListBox выбранные элементы
- 17. ListBox с функцией multiselect теряет выбранные элементы
- 18. Listbox multiselect потерять фокус с OnKeyUp
- 19. Получение выбранных значений из ListBox с MultiSelect
- 20. VBA multiselect listbox, заполнить столбец выделенными элементами
- 21. Сортировка запроса по Listbox с помощью multiselect?
- 22. Алгоритм, чтобы найти возможное количество выборов
- 23. Ограничить количество аргументов, переданных в
- 24. Ограничить количество объявлений в SQL
- 25. Ограничить количество символов в UITextField
- 26. Ограничить количество кнопок в строке
- 27. Ограничить количество результатов в JPQL
- 28. Ограничить количество файлов в папке
- 29. Ограничить количество потоков в numpy
- 30. Ограничить количество объектов в списке
Спасибо. ListBox.Selected (ListBox.ListIndex) был тем, что я искал. – mandroid
Фактически нет, что не отменяет выбор последнего выбранного элемента. Он выберет последний элемент в списке, хотя он может быть невидим. Также вы можете получить точный список, используя следующее, а не для проверки каждого элемента списка: Me.List11.ItemsSelected.Count –
aha, я знал, что был бы быстрый способ вернуть выбранный счет! Я не следую за тем, как он возвращает последний элемент в списке ... listIndex возвращает активный номер индекса в списке, если только не выбран ни один индекс, после чего он возвращает счетчик списка. http://msdn.microsoft.com/en-us/library/aa196331(office.11).aspx – Fink