Answered by:
show few rows as selected in list box

Question
-
Listbox is loaded from main table, there is another sub table has fewer rows but same data as main table.
Need to select rows in listbox based on sub table
is it possible do this functionality in MS Access Form?
Thanks
VWednesday, January 27, 2016 9:45 PM
Answers
-
I think so. You can loop through the items in the Listbox and set the Selected property to True if it matches a record in the sub table. Hope that helps...
- Marked as answer by David_JunFeng Friday, February 5, 2016 9:07 AM
Wednesday, January 27, 2016 10:01 PM -
>>>is it possible do this functionality in MS Access Form?
According to your description, it is possible to do this. You can use the Selected property in Visual Basic to determine if an item in a list box is selected.
Me!Listbox.Selected(4) = True
if you want to select ListBox item in subTable, refer to below code:
Dim rs As DAO.Recordset Dim i as integer Set rs = CurrentDb.OpenRecordset("YourTable") If rs.RecordCount = 0 Then Exit Sub Do Until rs.EOF For i = 0 To Me.YourListBox.ListCount - 1 If CLng(Me.YourListBox.ItemData(i)) = "" & rs!id Then Me.YourListBox.Selected(i) = True End If Next rs.MoveNext Loop
In addition you could clear all selected item in ListBox, refer to below code:
Function ClearList(lst As ListBox) As Boolean On Error GoTo Err_ClearList Dim varItem As Variant If lst.MultiSelect = 0 Then lst = Null Else For Each varItem In lst.ItemsSelected lst.Selected(varItem) = False Next End If ClearList = True Exit_ClearList: Exit Function Err_ClearList: Call LogError(Err.Number, Err.Description, "ClearList()") Resume Exit_ClearList End Function
- Marked as answer by David_JunFeng Friday, February 5, 2016 9:07 AM
Thursday, January 28, 2016 2:07 AM
All replies
-
I think so. You can loop through the items in the Listbox and set the Selected property to True if it matches a record in the sub table. Hope that helps...
- Marked as answer by David_JunFeng Friday, February 5, 2016 9:07 AM
Wednesday, January 27, 2016 10:01 PM -
I'm not sure exactly what you are doing with this listbox. But when selecting a subset of items in a list box, I usually display two listboxes side by side. The leftmost one has all the items minus those selected and the righmost one contains the selected items. Then I have right and left pointing buttons between the listboxes to select or unselect items. When selecting an item, it moves from the left listbox to the right listbox and when unselecting items move from the right to the left.
This is pretty easy to code and is intuitive to most users.
A similar dialog is used in some MS Access wizards.
Wednesday, January 27, 2016 10:23 PM -
>>>is it possible do this functionality in MS Access Form?
According to your description, it is possible to do this. You can use the Selected property in Visual Basic to determine if an item in a list box is selected.
Me!Listbox.Selected(4) = True
if you want to select ListBox item in subTable, refer to below code:
Dim rs As DAO.Recordset Dim i as integer Set rs = CurrentDb.OpenRecordset("YourTable") If rs.RecordCount = 0 Then Exit Sub Do Until rs.EOF For i = 0 To Me.YourListBox.ListCount - 1 If CLng(Me.YourListBox.ItemData(i)) = "" & rs!id Then Me.YourListBox.Selected(i) = True End If Next rs.MoveNext Loop
In addition you could clear all selected item in ListBox, refer to below code:
Function ClearList(lst As ListBox) As Boolean On Error GoTo Err_ClearList Dim varItem As Variant If lst.MultiSelect = 0 Then lst = Null Else For Each varItem In lst.ItemsSelected lst.Selected(varItem) = False Next End If ClearList = True Exit_ClearList: Exit Function Err_ClearList: Call LogError(Err.Number, Err.Description, "ClearList()") Resume Exit_ClearList End Function
- Marked as answer by David_JunFeng Friday, February 5, 2016 9:07 AM
Thursday, January 28, 2016 2:07 AM