Avatar billede douglas Nybegynder
07. november 2002 - 18:04 Der er 6 kommentarer og
1 løsning

Problemer med listview

Efter jeg har søgt meget rundt på eksperten og andre steder på nettet uden helt, tog jeg mig endelig sammen til at oprette et spørgsmål selv.
Er ved at lave et cd-register (skoleprojekt) , men kan ikke helt få min listview til at virke korrekt.

Jeg kan let starte programmet osv. og jeg kan også vise indholdet af listboxen én gang, men når det skal opdateres
går det galt, og jeg får fejlbeskeden :

Run-time error '35602':
Key is not unique in collection

Mine evner i Visual Basic er yderst begrænsede, og derfor jeg har vendt mig mod jer, Eksperter.

Her i koden: (håber nogen kan finde fejlen)


Option Explicit
Dim itm As ListItem
Dim i As Integer


Private Sub cmdTilføj_Click()
   
    FilNavn = "users\" & ValgtNavn
    Postlængde = Len(Register)
    Open FilNavn For Random As #1 Len = Postlængde
    SidstePost = FileLen(FilNavn) \ Postlængde

    PostNr = SidstePost + 1
   
    Register.Kunstner = InputBox("Kunstner")
    Register.Titel = InputBox("Titel")
    Register.Tid = InputBox("Tid")
    Register.Rating = InputBox("Rating")
    Register.Kommentar = InputBox("Kommentar")
           
    Put #1, PostNr, Register
       
    Close #1
   
    List
   
End Sub

Private Sub Form_Load()
    List
End Sub

Private Sub List()
    FilNavn = "users\" & ValgtNavn
    Postlængde = Len(Register)
    Open FilNavn For Random As #1 Len = Postlængde
    SidstePost = FileLen(FilNavn) \ Postlængde
   
   
   
    For i = 1 To SidstePost
        Get #1, i, Register
        Set itm = ListView1.ListItems.Add(i, "Row" & i, Register.Kunstner)
        itm.SubItems(1) = Register.Titel
        itm.SubItems(2) = Register.Tid
        itm.SubItems(3) = Register.Rating
        itm.SubItems(4) = Register.Kommentar
    Next i
   
    Close #1
End Sub

/Douglas
Avatar billede somaliomar Praktikant
07. november 2002 - 18:34 #1
Jeg ved godt nok ikke, hvad fejlen er, men prøv det her alligevel

Option Explicit
Dim itm As ListItem
Dim i As Integer

Private Sub cmdTilføj_Click()
    fFil = FreeFile
   
    FilNavn = "users\" & ValgtNavn
    Postlængde = Len(Register)
    Open FilNavn For Random As fFil Len = Postlængde
    SidstePost = FileLen(FilNavn) \ Postlængde

    PostNr = SidstePost + 1
   
    Register.Kunstner = InputBox("Kunstner")
    Register.Titel = InputBox("Titel")
    Register.Tid = InputBox("Tid")
    Register.Rating = InputBox("Rating")
    Register.Kommentar = InputBox("Kommentar")
           
    Put fFil, PostNr, Register
       
    Close fFil
   
    List
   
End Sub

Private Sub Form_Load()
    List
End Sub

Private Sub List()
    fFil = FreeFile
   
    FilNavn = "users\" & ValgtNavn
    Postlængde = Len(Register)
    Open FilNavn For Random As fFil Len = Postlængde
    SidstePost = FileLen(FilNavn) \ Postlængde
   
   
   
    For i = 1 To SidstePost
        Get fFil, i, Register
        Set itm = ListView1.ListItems.Add(i, "Row" & i, Register.Kunstner)
        itm.SubItems(1) = Register.Titel
        itm.SubItems(2) = Register.Tid
        itm.SubItems(3) = Register.Rating
        itm.SubItems(4) = Register.Kommentar
    Next i
   
    Close fFil
End Sub
Avatar billede douglas Nybegynder
07. november 2002 - 18:54 #2
Det hjalp desværre ikke, somaliomar

Den kommer stadig med samme fejlbesked
Avatar billede somaliomar Praktikant
07. november 2002 - 18:55 #3
Viser den for fejlen er opstået? Altså linjenr.?
Avatar billede somaliomar Praktikant
07. november 2002 - 18:56 #4
Om igen! Viser den hvilken linje fejlen er opstået?
Avatar billede douglas Nybegynder
07. november 2002 - 19:04 #5
ja, i Set itm = ListView1.ListItems.Add(i, "Row" & i, Register.Kunstner)
Avatar billede somaliomar Praktikant
07. november 2002 - 19:09 #6
Hmm... Prøv det her:

...

    For i = 1 To SidstePost
        Get fFil, i, Register
        ListView1.ListItems.Add(i, "Row" & i, Register.Kunstner).SubItems(1) = Register.Titel
        ListView1.ListItems.Add(i, "Row" & i, Register.Kunstner).SubItems(2) = Register.Tid
        ListView1.ListItems.Add(i, "Row" & i, Register.Kunstner).SubItems(3) = Register.Rating
        ListView1.ListItems.Add(i, "Row" & i, Register.Kunstner).SubItems(4) = Register.Kommentar
    Next i

...
Avatar billede douglas Nybegynder
07. november 2002 - 19:26 #7
jaja, så fik jeg det jo selv til at virke ...
En dum fejl, hvor jeg indsatte det samme i listview 2 gange.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester