---
title: "Iterera genom en Collection"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/81151-iterera-genom-en-collection"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Skies"
published: "2003-07-02T17:22:55.000Z"
updated: "2003-07-03T20:31:57.000Z"
replies: 5
views: 394
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/81151-iterera-genom-en-collection"
---

# Iterera genom en Collection

## #1 — Skies, 2003-07-02T17:22Z

Jag håller på med ett program där jag, genom att trycka på sök, ska kunna hämta information från en databas och lägga den informationen i en list view.

Till problemet: Hur gör jag för att iterera igenom min collCollectPerson och skriva ut resultatet i list view:n? Skickar med snutten av koden där det sker...

    

```
            Option Explicit 

           Dim oPerson As CPersonerCont 
           Dim ConnAdoConnection As ADODB.Connection 
           Dim rsAdoRecordset As ADODB.Recordset 
    
          Private Sub cmdAvbryt_Click() 
    
          Unload Me 
    
          End Sub 

        Private Sub cmdSök_Click() 

         Dim sPnr As String 
         Dim sEnamn As String 
         Dim collCollectPerson As Collection 
         Dim vElement As Variant 
         Dim itmx As ListItem 
    
         sPnr = txtPersonNummer.Text 
         sEnamn = txtEnamn.Text 
    
        Call oPerson.bGetPersoner(sPnr, sEnamn) 
    
        Set collCollectPerson = oPerson.PersonCollection 
        
        For Each vElement In collCollectPerson ' Här blir det fel!!!  
        'Den klagar på att den vill ha ett objekt??!!

       'Här vill jag skriva ut innehållet 
       'från collCollectPerson 
         
         
       Next vElement 
    
    
      End Sub 

      Private Sub Form_Load() 
    
     Set oPerson = New CPersonerCont 
     Set ConnAdoConnection = New ADODB.Connection 
    
    ConnAdoConnection.ConnectionString = "Laboration_3" 
    
    ConnAdoConnection.Open 
    
   Call oPerson.bSetConnection(ConnAdoConnection) 
    
   lstVSökPerson.ColumnHeaders.Add Text:="Personnummer", Width:=2300 
   lstVSökPerson.ColumnHeaders.Add Text:="Efternamn", Width:=2300 
   lstVSökPerson.ColumnHeaders.Add Text:="Förnamn", Width:=2300 
    
   lstVSökPerson.ListItems.Clear 
    
  End Sub
```

Nu är koden långt ifrån fullständig, så titta inte på saker som att jag inte rensat bort objekten osv , jobbar på att få grejerna utskrivna i list view:n först och främst  ;)

Tack på förhand!!  :e

Permalänk: https://www.webforum.nu/p/81151

## #2 — UlfT, 2003-07-02T20:03Z

En collection brukar bestå av en massa objekt av något slag. Därför lyckas du nog bättre om du deklarerar vElement som "Object".

Permalänk: https://www.webforum.nu/p/1100038

## #3 — Skies, 2003-07-02T20:37Z

Gick inte iaf :(  Den klagar ändå...

Permalänk: https://www.webforum.nu/p/1100050

## #4 — niko, 2003-07-02T20:55Z

```
     
Set collCollectPerson = oPerson.PersonCollection 

if not (collCollectPerson is nothing) then
	For Each vElement In collCollectPerson ' Här blir det fel!!!  
         
	Next vElement
else
	MsgBox "Oj, vi fick ingen collection. Vi får leta fel i koden för bGetPersoner."
end if
```

Sen ska nog både *Variant* och *Object* funka lika bra i det här fallet.

Permalänk: https://www.webforum.nu/p/1100065

## #5 — Nexus86, 2003-07-03T15:07Z

R // Såg att du gjorde det lite längre ner. :r

Permalänk: https://www.webforum.nu/p/1100412

## #6 — Skies, 2003-07-03T20:31Z

Hehe...japp. Men jag har löst det hela nu... det var en funktion i ena klassen som inte blev anropad vid class form_initialize som orsakade en tom collection..annars hade jag gjort rätt :)

Permalänk: https://www.webforum.nu/p/1100547

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/81151-iterera-genom-en-collection
