Listcount - 1 anvendes fordi 'listcount' indeholder antallet af poster i listen, mens 'listindex' starter ved nul.
Når du dynamisk tildeler dit array størrelse som beskrevet, skal du ikke trække 1 fra listcount. I øvrigt betyder det normalt ikke noget at et array har lidt ekstra ubenyttede variable.
Men der er en anden fejl, mener jeg. Der skal da ikke stå lstRcp.List(o) men lstRcp.text (o).
Hvad vil du i øvrigt opnå ved at indlæse listens poster i et array? Posterne står jo i forvejen i hukommelsen i en slags array, når de står i listen!
ok nu ser den sådan her ud Dim o As Long Dim k As Long k = lstRcp.ListCount For o = 0 To k addys(o) = lstRcp.Text(o) Next og giver den her fejl Wrong number of arguments or invalid property assignment og så highlighter den .Text i lstRcp.text
men ok hvis de allerede er i array så ka jeg godt se det her er åndssvagt men hvordan får jeg så dataen ud af listbox aray'et? den siger fejl med listbox.text(1) feks
Jeg plejer at indstille listens indeks på den post jeg vil se (kopiere til felter f.eks.)
Hvis det det drejer ig om at løbe en liste igennem ved en fritekst-søgning skriver jeg således:
Du indtaster nogle tegn i et søgefelt 'txtsog' og trykker 'enter' (du kan også vælge at det skal være dobbeltklik eller tryk på en knap der starter søgningen).
Private Sub txtsog_KeyPress(KeyAscii As Integer)
If Len(txtsog.text)= 0 Then Exit Sub For a = 0 to list1.listcount -1 list1.listindex = a If instr(list1.text,txtsog.text)> 0 then list2.AddItem list1.text Next a
End Sub
Der er mange variationsmuligheder, du kan søge direkte i din fil og tilføje matchende poster til en liste, det afhænger jo af hvor data dannes eller læses fra. I mit eksempel tilføjes de som passer til søge-kritereiet til en liste to.
Hjælper dette dig ikke må du oplyse lidt mere om formål i din gennemløbning af en liste.
Det skal nævnes at i win98 løber en liste langsomt når antialiasing er aktiv (default) så kan man gøre listen 'Visible = False' mens der søges og gøre den synlig når søgningen er færdig.
jeg har læst en masse navne ind fra en tekstfil ind i en listbox de navne skal jeg så lave et database check med allesammen men et navn ad gangen dvs jeg skal have navnene ud fra den listbox igen og så ned i min db funktion uden at selecte nogle af dem hvis det er muligt så den bare tager allesammen fra en ende af
Du har en tekstfil med nogle navne - adskilt af CRLF ? - det jeg kalder poster. Du har en - access? - database hvor der er navne i en af tabellerne?
Du vil undersøge om alle navne forekommer i databasen.
Hvad skal der ske hvis der er navne i databasen der ikke er i tekstfilen og - hvad skal der ske hvis der er navne i tekstfilen, der ikke forekommer i databasen.
For mig at se er listen uinteressant, du kan læse første post i din fil og udføre sammenligningen. Hvis navnet forekommer så skal det måske tilføjes en listeboks for nærmere inspektion, eller?
Nu er det påske og solskin, så måske skulle vi lave noget andet end VB.
Private Sub Command1_Click() Dim i, j As Long Dim addys() As String
j = lstRcp.ListCount - 1 ReDim addys(j) As String
For i = 0 To j addys(i) = CStr(lstRcp.List(i)) Next i
MsgBox "Der er fra " & LBound(addys()) & " til " & UBound(addys()) & " i addys()"
For i = LBound(addys()) To UBound(addys()) MsgBox "addys(" & i & ") = " & addys(i) Next i End Sub
Private Sub Form_Load() With lstRcp .AddItem "Abe" .AddItem "Mus" .AddItem "Hus" .AddItem "Løve" .AddItem "Elefant" .AddItem "Slange" End With End Sub '------------------------------- Form1 -------------------------------
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.