Avatar billede adagio Nybegynder
25. februar 2003 - 18:32 Der er 11 kommentarer og
1 løsning

ListView og database problem

I mit filmdatabase program har jeg et lille problem:
Jeg har en stump kode, som virker uden problemer, når jeg skriver:
If MD = "DVD" Then
Men når jeg ændrer det til:
If MD = "VHS" Then
så siger den Index out of bounds, og peger på:
LstViewMovieList.ListItems(a).ListSubItems.Add , , RS!Sprog

Nogen experter her, som ved hvad problemet kan være?

Jeg har følgende kode:

Dim DB As Database
Dim RS As Recordset
Dim MD As String
Dim Header As ColumnHeader

clearList

LstViewMovieList.Sorted = False

LstViewMovieList.ColumnHeaders.Clear

Set Header = LstViewMovieList.ColumnHeaders.Add()
    Header.Text = "Titel"
    Header.Width = LstViewMovieList.Width * 0.73
   
Set Header = LstViewMovieList.ColumnHeaders.Add()
    Header.Text = "Sprog"
    Header.Width = LstViewMovieList.Width * 0.08
   
Set Header = LstViewMovieList.ColumnHeaders.Add()
    Header.Text = "Antal CD'er"
    Header.Width = LstViewMovieList.Width * 0.11
   
Set Header = LstViewMovieList.ColumnHeaders.Add()
    Header.Text = "Kvalitet"
    Header.Width = LstViewMovieList.Width * 0.07
   
Set DB = OpenDatabase(App.Path + "\List\MovieInfo.mdb")
Set RS = DB.OpenRecordset("Movies")

Dim a As Integer
a = 1

Do Until RS.EOF
   
    MD = RS!MediaType
    If MD = "VHS" Then
    LstViewMovieList.ListItems.Add , , RS!FilmTitel
    LstViewMovieList.ListItems(a).ListSubItems.Add , , RS!Sprog
    LstViewMovieList.ListItems(a).ListSubItems.Add , , RS!AntalCD
    LstViewMovieList.ListItems(a).ListSubItems.Add , , RS!Kvalitet
     
    LstViewMovieList.ListItems(a).Tag = RS!ID
   
    End If
    a = a + 1
   
    RS.MoveNext
   
Loop

RS.Close
DB.Close
LstViewMovieList.Sorted = True
LstViewMovieList.HideSelection = True
Avatar billede adagio Nybegynder
25. februar 2003 - 18:34 #1
Det skal lige siges, at jeg i databasen bare har kopieret indholdet, og så ændret !MediaType til forskellige typer...
Avatar billede jrl0469 Nybegynder
26. februar 2003 - 09:14 #2
Hva er det for en type liste control du bruger?
Avatar billede tjacob Juniormester
26. februar 2003 - 10:00 #3
Der er en lille fejl, men den burde gælde for både DVD og VHS:

Du mangler en reference til a, når du adder et nyt ListItem:

  LstViewMovieList.ListItems.Add a, , RS!FilmTitel    <<< 'a' mangler


mvh tjacob
Avatar billede tjacob Juniormester
26. februar 2003 - 10:04 #4
For fuldstændighedens skyld burde du også sætte index på subitems:

    LstViewMovieList.ListItems.Add a, , RS!FilmTitel
    LstViewMovieList.ListItems(a).ListSubItems.Add 1, , RS!Sprog
    LstViewMovieList.ListItems(a).ListSubItems.Add 2, , RS!AntalCD
    LstViewMovieList.ListItems(a).ListSubItems.Add 3, , RS!Kvalitet

mvh tjacob
Avatar billede jrl0469 Nybegynder
26. februar 2003 - 10:05 #5
Hej tjacob
Hva' er det for en type list control der bruges?
mvh Jan
Avatar billede tjacob Juniormester
26. februar 2003 - 10:26 #6
Se overskriften: ListView og database problem ;-)
Avatar billede tjacob Juniormester
26. februar 2003 - 10:30 #7
ListView er en kontrol i Common Controls OCX'en (f.eks. 6.0). Tilføj den til dit projekt under "Komponenter"

mvh tjacob
Avatar billede jrl0469 Nybegynder
26. februar 2003 - 10:30 #8
Det er blot fordi jeg ikke genkender syntaksen!
LstViewMovieList. >>ListItems(a).ListSubItems.Add 1, , RS!Sprog<<
Avatar billede jrl0469 Nybegynder
26. februar 2003 - 10:32 #9
Okay, glem seneste kom. Mvh Jan
Avatar billede adagio Nybegynder
26. februar 2003 - 13:22 #10
Det gør ingen forskel på om jeg sætter index på subitems...

Men jeg vil lige prøve at adskille DVD/VHS i databasen, og se om det så virker...
Avatar billede adagio Nybegynder
26. februar 2003 - 13:40 #11
Tror det virker, efter at have adskilt databasen... Men holder lige spørgsmålet oppe lidt endnu, for en sikkerheds skyld...
Avatar billede adagio Nybegynder
26. februar 2003 - 18:51 #12
Det virker til nu, så jeg lukke spørgsmålet...

Men tak for kommentaren om index på subitems, det kan jeg måske bruge til noget senere... :o)
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