2010-05-28 9 views
10

मेरे पास एक सूची बॉक्स है जो उपयोगकर्ता चयनों के आधार पर डेटा के विभिन्न सेटों के साथ पॉप्युलेट करता है।एमएस एक्सेस सूची बॉक्स में मानों के माध्यम से साइकिल चलाना

मैं सूची बॉक्स में दिए गए किसी दिए गए मानों के माध्यम से कैसे चक्र कर सकता हूं? क्या यह For Each कथन है, या क्या?

+0

यह मत भूलना कि आपके पास एक बहुविकल्पीय सूची बॉक्स हो सकता है और यदि चयनित फॉर्म में कोई समस्या हो तो चयनित संपत्ति का उपयोग करें। – Fionnuala

उत्तर

16

आप आप एक For पाश लिस्टबॉक्स में प्रत्येक पंक्ति की जांच करने के लिए कर सकते हैं, और जो कुछ भी पंक्तियों जो चुने गए हैं साथ है। इस उदाहरण में, मैं lstLocations सूची बॉक्स में चयनित आइटमों से दूसरा कॉलम प्रदर्शित करता हूं। (कॉलम नंबरिंग शून्य के साथ शुरू होता है।)

Private Sub cmdShowSelections_Click() 
    Dim lngRow As Long 
    Dim strMsg As String 

    With Me.lstLocations 
     For lngRow = 0 To .ListCount - 1 
      If .Selected(lngRow) Then 
       strMsg = strMsg & ", " & .Column(1, lngRow) 
      End If 
     Next lngRow 
    End With 

    ' strip off leading comma and space 
    If Len(strMsg) > 2 Then 
     strMsg = Mid(strMsg, 3) 
    End If 
    MsgBox strMsg 
End Sub 

नोट मुझे लगता है कि आप चयनित आइटम सूची बॉक्स से चाहते हैं। यदि आप सभी आइटम चाहते हैं, तो चयनित या नहीं, आप .ItemData का उपयोग @DavidRelihan suggested के रूप में कर सकते हैं। हालांकि, उस स्थिति में, आप उन्हें सूची बॉक्स .RowSource से प्राप्त कर सकते हैं।

+0

धन्यवाद हंस! मुझे थोड़ा सा ले गया लेकिन मुझे यह काम मिल गया। धन्यवाद! – Justin

20

का तरीका यहां बताया ListBox के माध्यम से पुनरावृति है:

Dim i as Integer 

For i = 0 to Me.ListBoxName.ListCount -1 
    'Access each item with 
    'Me.ListBoxName.ItemData(i) 
Next i 
+0

धन्यवाद! यह ठीक काम भी किया! – Justin

संबंधित मुद्दे