• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2446
  • Last Modified:

VB ms access listbox and displaying selected item

I have got a list box with multiple select switched on, which is living on an access form and the code below works and can pick between the selected items and the not selected items,

but cannot figure out the syntax to display the item values that have been selected out of the list box

not quite sure what the syntax is

thanks in advance
For x = 0 To List23.ListCount - 1
        If List23.Selected(x) = True Then
                                                                        MsgBox List23.Selected (x) 
 
*********  display in here the syntax to display the value of the listbox  ***********
 
            msgbox "selected"
        else 
              msgbox "not selected"
 
        End If
    Next x

Open in new window

0
sydneyguy
Asked:
sydneyguy
  • 4
  • 4
  • 2
  • +1
3 Solutions
 
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
You can refer to them as such

List23.column(x,0)

would show the FIRST column for tha row (columns are zero-based).

Also, you can use the ItemsSelected collection to show ONLY those items that have been selected, without iterating the entire list:

dim var As variant

for each var in List23.ItemsSelected
  '/do something here
Next var
0
 
jppintoCommented:
lstTest.ItemsSelected.Item(x) will give you the value from the x value selected in the listbox.
0
 
jppintoCommented:
Or you could do something like this that will give you a string with all the values selected separeted by a ",".
With Me.List23
        If .ItemsSelected.Count > 0 Then
            For Each I In .ItemsSelected
                MyString = ItemData(I) & Chr(39) & ", " & MyString
            Next I
        End If
End With

Open in new window

0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
sydneyguyAuthor Commented:
List23.ItemsSelected.Item (x)
throws up a " invalid use of property "  ?????
0
 
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
Actually mine should read

List23.ItemsSelected(0, x)

See her for more info on the ItemsSelected property:
http://msdn.microsoft.com/en-us/library/aa196172(office.11).aspx
0
 
sydneyguyAuthor Commented:
With Me.List23
        If .ItemsSelected.Count > 0 Then
            For Each i In .ItemsSelected
                MyString = ItemData(i) & Chr(39) & ", " & MyString
            Next i
        End If
End With

does not run but after I
dim an array for ItemData(i)  it  now throws up ItemData(i)  type mismatched
0
 
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
ItemData is a property of your listbox; you must tell Access what to use:

List23.ItemData(i)

See the link I posted above for syntax and usage of the ItemsSelected property.
0
 
sydneyguyAuthor Commented:

    For i = 0 To List23.ListCount - 1

        If List23.Selected(i) = True Then
            MsgBox List23.Column(0, i)
            lstItem = lstItem & "," '& List1.List(x)
         
         Else
         
        End If
    Next i

does the job that will roll through the listbox and allow me to extract the data from the box
thanks every one
0
 
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
Glad this works, but if you get time I'd change this to use the ItemsSelected property of that listbox ... it's nit-picky, but there's just no reason to cycle through every item in that Listbox when the ItemsSelected property is available.
0
 
sydneyguyAuthor Commented:
now that I have something that actually works I will refine as per your suggestion, just so frustrating when you know that you have doen it before but just cannot find the code to show how, but now it works I will refine thanks for alll your help
garry
0
 
Helen FeddemaCommented:
Here is some code for iterating through the ItemsSelected collection of a listbox.  Instead of setting a variable, you could (for example) display the item value in the Immediate Window, write it to a text file, or whatever.  Note that varItem should be declared as a variant, because the items in different listboxes might be of different date types.  You could make it another type depending on what is in your listbox.
   For Each varItem In lst.ItemsSelected
 
      lngID = Nz(lst.Column(0, varItem))
   
   Next varItem

Open in new window

0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 4
  • 4
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now