有沒有辦法限制用戶可以在Access 2003中啓用MultiSelect的ListBox上選擇的選擇數量?現在我有一個OnClick事件觸發的過程,它檢查所選選項的數量,如果它超過了我的閾值,它將顯示一個警告標籤。限制Access中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
使用列表框ItemsSelected集合?這是我知道限制選定項目數的唯一方法。 OTOH有一些真正扭曲的人,他們可能已經找到了替代方案,所以我從不說永遠。
這種方法有什麼問題?
我認爲OP希望阻止選擇多於N個選擇,或者至少能夠在他們反饋錯誤/警告消息時取消選擇最近的選擇。 – BIBD 2009-09-10 19:19:27
您可以使用列表框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 2009-09-10 20:05:43
我建議,爲了這個,一個更易於管理,人性化和易於理解的用戶界面將是成對列表框的方式,與地址>和按鈕在用戶達到極限之後。您不必做任何困難,只要檢查右側列表框的ListCount並在達到極限時禁用ADD>按鈕。
而且你避免了很多問題,因爲它對用戶來說非常清楚他們正在做什麼,而不是一次在單個列表框中選擇多個項目。如果ItemsSelected數量超過限制,您可以使左列表框多選,並簡單地禁用ADD>按鈕,並適當地通知用戶。
- 1. 已選擇的jQuery插件 - 限制Multiselect中的選定選項
- 2. 限制zend multiselect中的最大選擇數
- 3. Multiselect-Listbox(MVC3 Razor)中的預選項目
- 4. 限制easyui combobox中的選擇數量
- 5. Magento multiselect限制爲選定選項的數量
- 6. 獲取Multiselect listbox選擇的項目作爲逗號分隔變量中的值
- 7. jqGrid multiselect - 只使用複選框限制行的選擇
- 8. create int [] listbox multiselect
- 9. 限制用戶在PHP中選擇的複選框的數量
- 10. Bootstrap Multiselect限制問題
- 11. 限制wordpress中選中框的數量
- 12. Access 2010 - 日期選擇器中的限制日期範圍
- 13. 如何在多個選擇插件中選擇限制數量的選項?
- 14. 反應限制選擇數量
- 15. 如何找到在ListBox中選擇的項目數量?
- 16. ListBox的選擇項數
- 17. 限制在jstree中選擇子節點的數量
- 18. MySQL的選擇到outfile中,選擇數據量(文件大小限制)
- 19. 在cxGrid(Developer Express)中限制MultiSelect的可選行
- 20. 如何基於在Access中的ListBox中的選擇來運行查詢?
- 21. HTML選擇+可選選項的數量限制
- 22. MultiSelect ListBox在Excel中切換窗口時會改變選項
- 23. collection_select中的選擇數量
- 24. 在KENDO UI Multiselect中選擇默認值
- 25. 限制選擇數量並將選定數據插入到數組中
- 26. Html選擇,選擇限制
- 27. 限制用戶選擇的複選框的數量
- 28. 如何限制用戶在FORM中選擇的列表框選項的數量?
- 29. 限制選項中選擇元素
- 30. 限制點擊時用戶選擇的複選框數量
謝謝。 ListBox.Selected(ListBox.ListIndex)是我正在尋找。 – mandroid 2009-09-10 23:38:37
其實沒有不取消選擇最後一個項目。它將取消選擇列表中的最後一項,但可能不可見。 您也可以使用以下命令獲取確切的列表,而不必檢查每個列表框項目: Me.List11.ItemsSelected.Count – 2009-09-11 00:38:49
aha,我知道有一個更快的方法來返回選定的計數! 我不關注它如何返回列表中的最後一項... listIndex返回列表中的活動索引號,除非沒有選擇索引,那麼它將返回列表的計數。 http://msdn.microsoft.com/zh-cn/library/aa196331(office.11).aspx – Fink 2009-09-11 13:43:55