det du jo kunne gøre var at lave et multidimensionalt array, hvor f.eks. 1[0] var navnet på programmet 1[2] var hvem der havde lavet programmet osv. -så skulle det jo derfra ikke være særligt svært at lave en løkke der fylder de relevante data i de korrekte txtboxes.
hvis du vil starte et prg. fra vb kan du f.eks. bruge a = shell('c:/win/notepad.exe')
men i hovedtræk er det du skal gøre at definere et array hvor hvert element på listen har x antal indgange (f.eks. 5 hvis det er det antal oplysninger som du vil have for hvert program/film osv.)
-så indsætter du i array'et f.eks.: 'film1 mitarray(1,0) = "the matrix" mitarray(1,1) = "sci-fi" mitarray(1,2) = "2 1/2 time" 'film2 mitarray(2,0) = "anna og lotte's greatest" mitarr...... osv.
bagefter kan du så tilgå elementerne med en løkke f.eks. for i = 0 to 5 for x = 0 to 5 text(x).text = mitarray(i,x) next x next i
-jeg håber det gav lidt mere mening :) /da jeg er nødt til at smutte nu, men kigger nok forbi engang i aften og ser hvordan det går.
Ok..... hvis nu jeg gerne vil have det i en databse.... kunne man så ikke gøre det lidt nemmere???
Jeg har før prøvet at lege med databser i access, men i stedet for at "CD'er" står en afgangen i en textboks, vil jeg gerne have at det kommer frem i en liste....
Combo1.Clear Det er nemmere at gemme mange forskellige oplysninger i en database. Hvis du vil ha' dem at se i en liste gør du sådanne: Data1.Recordset.MoveFirst Do Until Data1.Recordset.EOF = True List1.AddItem Data1.Recordset("xx-navn") Data1.Recordset.MoveNext Loop
Ubs. Der skal selvfølgelig ikke stå "Combo1.Clear" men List1.Clear inde i koden FØR Do/Loop - ellers bliver listen bare længere og længere for hver gang den udfyldes.
Husk nu at indsætte List1.Clear som den første linie i koden.
Har du fat i selve databasen? Data1.DatabaseName = "C:\...\...\DBName"
Det kan somme tider være lettere at teste et problem hvis man indsætter midlertidige kontroller (command, label etc.) Put en CommandButton på formen og sæt koden ind i den så den kører hver gang du klikker på den. Når så koden kører fejlfrit kan du sætte den over hvor den skal køre fx Form.Load
Nej den lister dem kun hvis jeg sætter dem ind i koden til en knap... så kommer de ligeså fint frem i listen når jeg killer på dem.... men sætter jeg dem ind i form_load.... så går det galt... så kommer den med fejl!!
Prøv med Form_Activate Listen viser bare data for bruger som er i DB Skal Data1 rykke til den post bruger klikker på er det en ny ting:
Data1.Recordset.MoveFirst Do Until Data1.Recordset.EOF = True If Data1.Recordset("Name") = List1.Text Then 'Nu peger Data1 på den rigtige post 'Skriv kode den skal gøre fx vise data Exit Do End If Data1.Recordset.MoveNext Loop
--------------------------------------------------------------------------- Private Sub Form_Activate() List1.Clear data1.DatabaseName = "H:\Menu\db1.mdb" Data1.Recordset.MoveFirst Do Until Data1.Recordset.EOF = True List1.AddItem Data1.Recordset("Name") Data1.Recordset.MoveNext Loop
Data1.Recordset.MoveFirst Do Until Data1.Recordset.EOF = True If Data1.Recordset("Name") = List1.Text Then 'Nu peger Data1 på den rigtige post 'Skriv kode den skal gøre fx vise data Exit Do End If Data1.Recordset.MoveNext Loop End Sub --------------------------------------------------------------------------- Så skriver du at jeg skal skrive en kode der viser dataen??
Hvilken kode??
Nu kommer al dataen fint når bare der står Form_activate()
Nu har du 2 ting i den samme kode: Form_Activate() Det er kun den første del - den der udfylder din List1 - der skal være her.
Du siger så at den skal pege på den post i DB som bruger klikker på i List1 - det er den sidste del - denne kode skal stå i List1.Click():
Private Sub List1_Click() Data1.Recordset.MoveFirst Do Until Data1.Recordset.EOF = True If Data1.Recordset("Name") = List1.Text Then 'Nu peger Data1 på den rigtige post 'Skriv kode den skal gøre fx vise data Exit Do End If Data1.Recordset.MoveNext Loop End Sub
Hvad din kode så skal gøre når den peger på en bestemt post brugeren har valgt ved jeg jo ikke, men det kunne jo FOR EKSEMPEL være at vise nogle flere data :-)
Sig jeg er dum... for det der er sort snak for mig.....
Det første gik fint... men når jeg sætter den sidste kode ind, så går det hele nedenom og hjem...
Jeg vil gerne at når jeg klikker en enkelt gang på en af de poster der er kommet frem i list1'en, så skal den gå til den post og vise alle de resultater der er omkring denne post i databasen, og de skal vises i 4 textbokse....
Du har gang i 2 ting: 1. Udfyld din List1 så bruger kan se hvad der er i DB: -------------------------------------------------------------------------- Private Sub Form_Activate() List1.Clear data1.DatabaseName = "H:\Menu\db1.mdb" Data1.Recordset.MoveFirst Do Until Data1.Recordset.EOF = True List1.AddItem Data1.Recordset("Name") Data1.Recordset.MoveNext Loop End Sub -------------------------------------------------------------------------- Dette fungere ok ikke?
2. Bruger vælger et element i listen der nu er tilgængelig: -------------------------------------------------------------------------- Private Sub List1_Click() Data1.Recordset.MoveFirst Do Until Data1.Recordset.EOF = True If Data1.Recordset("Name") = List1.Text Then 'Nu peger Data1 på den rigtige post 'Skriv kode den skal gøre fx vise data Text1.Text = Data1.Recordset("Name") '("??") er Feltnavne i DB Text2.Text = Data1.Recordset("??") Text3.Text = 'og så fremdelses Exit Do End If Data1.Recordset.MoveNext Loop End Sub -------------------------------------------------------------------------- GoTo er til at springe i koden, ikke til at finde poster i DB.
Men koden ser altså sådan her ud: --------------------------------------------------------------------------- Private Sub List1_Click() Data1.Recordset.MoveFirst Do Until Data1.Recordset.EOF = True If Data1.Recordset("Name") = List1.Text Then Text1.Text = Data1.Recordset("Multiplayer") Text2.Text = Data1.Recordset("Number of CD's") Text3.Text = Data1.Recordset("Type of Game") Text4.Text = Data1.Recordset("Name") Exit Do End If Data1.Recordset.MoveNext Loop End Sub ---------------------------------------------------------------------------
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.