25. april 2005 - 12:16Der er
28 kommentarer og 1 løsning
sharp i listview
jeg vil gerne have lavet en sharp function... jeg har 2 listview hvor i den ene bliver vist de film jeg har plus alt mulig info og så vil jeg gerne have i min listview2 vist om den film jeg klikker på i listview1 er udlånt og og hvem den er udlånt til osv. jeg bruger access og min database er sat rigtig op til det så nu mangler jeg bare at finde ud af hvad kode jeg skal bruge for at sammenflætte det på den måde som jeg overstående har forsøgt at forklare.
til at smide mine film ind i listview1 bruger jeg denne kode :
Private Sub Form_Load() Dim rs As Recordset, item As ListItem
Set db = New connection 'open an connection db.Open "Provider=Microsoft.Jet.OLEDB.3.51;" & _ "Data Source=" & App.Path & "\db3.mdb" Set rs = New Recordset rs.Open "film", db, adOpenForwardOnly, adLockReadOnly
Do While Not rs.EOF Set item = Listview1.ListItems.add(, "E" & CStr(rs!filmID), CStr(rs!filmID)) item.SubItems(1) = rs!titel item.SubItems(2) = rs![film navn] item.SubItems(3) = rs!kategori item.SubItems(4) = rs![cd'er] item.SubItems(5) = rs!bemærkning rs.MoveNext Loop rs.Close Set rs = Nothing Call Form_Resize End Sub
hvad skal jeg gøre i denne kode?? min database hedder : db3.mdb og den ene tabel hedder : film og den anden hedder : låne
håber der er nogen som kan hjælpe og på forhånd tak..
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Altså du vil ha den skal hente data fra låne ind i listwiev 2 der handler om den film henter ind i listview 1 ?
lige en anden ting er du skal lave tabelnavnet om til noget andet end låne å duer ikke.......og gør dig selv en tjeneste at give dem navn efter hvad det er.... tblLaane så vil du altid i din kode vide det er en table der er tale om......
det gøre ikk mig så meget om der står tbl eller ej... hvis bare jeg kan få det til at virke så er jeg glad... men okay skal nok lave låne om til laane...
men når jeg låner en film ud vil jeg smide ind i min database/låne hvem den er lånt ud til og hvilken dato han lånte den og når jeg så klikker på den film oppe i listview1 skal den vise nede i listview2 det som passer til den film jeg klikker på så jeg kan se om den er lånt ud eller om jeg har den hjemme...
er du med nu eller skal jeg prøve at forklare det lidt beder???
Skal det laves på en fornuftig måde så er det lidt mere end bare et klik....... med mindre du kun har en film i din listview......har du flere kan det blive lidt kringlet da der tit er mere end en film med samme navn, så der skal ID gemmes sammen med navnet......
jeg har også en lånefunktion i et program jeg har lavet (mangler lige at lave søgefunktion færdig)...... Men jeg kan da godt paste koden til det så kan du se på det.....og evt. maile dig projektet.......
Ja der er mere end en film. men hvis det nu var en james bond film som hedder Dr. NO så skriver jeg James Bond i en colunne som hedder titel og Dr. NO i en colunne som hedder film navn... men jeg har også ID med som bliver gemt sammen med filmen for eller kunne jeg ikk få min søge function og rediger til at virke...
Ok så går jeg også ud fra du bruger samme ID i den anden tabel ?
Det nemmeste ville at lægge låne kolonnen ind i den tabel du lister filmene i ? der er alle info jo........
Men det du skal er at låne id ud, og så trække de info du nu vil med over i den anden tabel.........
Private Sub ListView1_Click() Dim rs As Recordset, item As ListItem
Set db = New connection 'open an connection db.Open "Provider=Microsoft.Jet.OLEDB.3.51;" & _ "Data Source=" & App.Path & "\db3.mdb" Set rs = New Recordset rs.Open "laane", db, adOpenForwardOnly, adLockReadOnly
Do While Not rs.EOF Set item = Listview1.ListItems.add(, "E" & CStr(rs!filmID), CStr(rs!filmID)) item.SubItems(1) = rs!titel item.SubItems(2) = rs![film navn] item.SubItems(3) = rs!kategori item.SubItems(4) = rs![cd'er] item.SubItems(5) = rs!bemærkning rs.MoveNext Loop rs.Close Set rs = Nothing Call Form_Resize End Sub
Private Sub ListView1_Click() Dim rs As Recordset, item As ListItem
Set db = New connection 'open an connection db.Open "Provider=Microsoft.Jet.OLEDB.3.51;" & _ "Data Source=" & App.Path & "\db3.mdb" Set rs = New Recordset rs.Open "laane", db, adOpenForwardOnly, adLockReadOnly
Do While Not rs.EOF If rs!id = listview1.item(0) then kode exit do else: rs.movenext end if Loop rs.Close Set rs = Nothing Call Form_Resize End Sub
Er det i listview1 den kode skal ligge eller er det i listview2???
og i min tabel laane har jeg en colunne som hedder filmID lige som jeg har i den tabel der hedder film og det er de 2 jeg har koblet sammen inde i acces...
du må lige sige til hvis du skal bruge bedre forklaring for at kunne hjælpe...
mener hvis du dobbeltklikker på den den skriver listview1_change() det change skal du bare ændre til click
og hvis du bruger id så vil jeg mene det ikke er nødvendigt at lave relationer..... det er nemmere at arbejde kun i vb og så bruge id'et som den du arbejder ud fra....
jaaa nu får jeg bare fejl i If rs!id = listview1.item(0) then kan det have noget at gøre med at der står tal i den for jeg får ikk fejl hvis jeg ændre 0 til et 1 tal hvor der står tekst i...
fandt selv fejlen.. men hvis du lige smider et svar så får du 100 point for at hjælpe mig på vej til hvad jeg skulle gøre for at få det til at virke...
kan det egentlig lade sig gøre i en tekstbox at lave en function som selv sætter - eks dd-mm-yyyy syntes jeg har set det et eller andet sted... kan bare ikk huske hvordan man gøre...
det der har jeg prøvet men det virker ikk på den måde som jeg gerne vil have det til... jeg vil gerne have at jeg i et textfelt kan skrive 27 og når de to første tal så er sat ind så sætter textfeltet selv - så jeg kan skrive 04 og så skal den igen sætte - og så kan jeg skrive 2005 hvor der så til sidst kommer til at stå 27-04-2005
Private Sub Form_Load() Text1.Text = "" Text1.MaxLength = 10 End Sub
Private Sub Text1_Change() If Len(Text1.Text) = 2 Then Text1.Text = Text1.Text & "-" ElseIf Len(Text1.Text) = 5 Then Text1.Text = Text1.Text & "-" End If End Sub
der er dog et lille prob. cursor ryger forrest og bliver ikke bages.....
man må da sige at det virker det du gav mig... men ja den hopper hen forrest... du har ikk en lille ide om hvordan man kan rette det... hvis ikk så må jeg selv lige se hvad jeg kan gøre... men i hvert fald tak for hjælpen...
Private Sub Form_Load() Text1.Text = "" Text1.MaxLength = 10 End Sub
Private Sub Text1_Change() If Len(Text1.Text) = 2 Then Text1.Text = Text1.Text & "-" Text1.SelStart = 3 ElseIf Len(Text1.Text) = 5 Then Text1.Text = Text1.Text & "-" Text1.SelStart = 6 End If End Sub
Hvis du går i designview kan du se navnene på felterne og hvad type det er, når du trykker på dit janej felt så kan du se hvad den hedder for neden....der kan du vælge om det skal være ja/nej eller true/false
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.