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
Annonceindlæg fra Immeo
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...
26. februar 2003 - 09:14
#2
Hva er det for en type liste control du bruger?
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
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
26. februar 2003 - 10:05
#5
Hej tjacob Hva' er det for en type list control der bruges? mvh Jan
26. februar 2003 - 10:26
#6
Se overskriften: ListView og database problem ;-)
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
26. februar 2003 - 10:30
#8
Det er blot fordi jeg ikke genkender syntaksen! LstViewMovieList. >>ListItems(a).ListSubItems.Add 1, , RS!Sprog<<
26. februar 2003 - 10:32
#9
Okay, glem seneste kom. Mvh Jan
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...
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...
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)
Kurser inden for grundlæggende programmering