21. september 2002 - 13:00Der er
24 kommentarer og 1 løsning
Comboliste
Jeg sidder og arbejder med en combo-box Jeg forestiller mig følgende :
Øverst i min form er der en combo-box. Neden under en listbox. Når jeg dropper ned i min combo og vælger et felt, skal det jeg vælger komme i listbox'en Det jeg meget gerne vil vælge er så nogen datafield-ting hvis det er muligt ?
Altså så resultatet af en forespørgsel kan vælges direkte i min combo og resultatet vises i min listbox.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du skal tilføje den reference der hedder DAO 3.51 eller DAO 3.6
Dim ws As Workspace Dim db As Database Dim rs As Recordset
'I din form_load vælger den det der skal stå i din combobox fra en access 'database, rs!dbId er primær nøgle som bare er et autonummer Set ws = Workspaces(0) Set db = ws.OpenDatabase(App.Path & "\data.mdb") Set rs = db.OpenRecordset("SELECT * FROM data1") If Not rs.EOF Then rs.MoveFirst Do While Not rs.EOF comNavn.AddItem rs!dbNavn comNavn.ItemData(comNavn.NewIndex) = rs!dbId comNavn.Text = rs!dbNavn rs.MoveNext Loop End If End Sub
'Her er så koden for at hente data ind fra db når du vælger i din combobox. Private Sub comNavn_Click() Set ws = Workspaces(0) Set db = ws.OpenDatabase(App.Path & "\data.mdb") Set rs = db.OpenRecordset("SELECT * FROM data1") rs.MoveFirst Do While rs.EOF = False If rs!dbId = comNavn.ItemData(comNavn.ListIndex) Then txtAdresse.Text = rs!dbAdresse txtPostOgBy.Text = rs!dbPostnummer + " " + rs!dbBy txtLand.Text = rs!dbLand txtTelefonnummer.Text = rs!dbTelefonnummer txtMobilnummer.Text = rs!dbMobilnummer txtEmail.Text = rs!dbEmail txtHjemmeside.Text = rs!dbHjemmeside txtFoedselsdag.Text = rs!dbFoedselsdag End If rs.MoveNext Loop End Sub
Dim ws As Workspace Dim db As Database Dim rs As Recordset
'I din form_load vælger den det der skal stå i din combobox fra en access 'database, rs!dbId er primær nøgle som bare er et autonummer Set ws = Workspaces(0) Set db = ws.OpenDatabase(App.Path & "\data.mdb") Set rs = db.OpenRecordset("SELECT * FROM data1") If Not rs.EOF Then rs.MoveFirst Do While Not rs.EOF comNavn.AddItem rs!dbNavn comNavn.ItemData(comNavn.NewIndex) = rs!dbId comNavn.Text = rs!dbNavn rs.MoveNext Loop End If End Sub
skal stå i Form_Load() ? Og den nederste på Combo_Click'en ? Hvad så med listbox'en ?
Går ud fra at du vil have forskellige poster i en bestemt rækkefølge :O) kører lige vidre med mit adressebogs eks.
Ja det er rigtigt, det øverste form_load og det nederste i combo_click...... Jeg laver lige det der skal i combo_click igen :O)
'Her er så koden for at hente data ind fra db når du vælger i din combobox. Private Sub comNavn_Click() Set ws = Workspaces(0) Set db = ws.OpenDatabase(App.Path & "\data.mdb") Set rs = db.OpenRecordset("SELECT * FROM data1") rs.MoveFirst Do While rs.EOF = False If rs!dbId = comNavn.ItemData(comNavn.ListIndex) Then List1.AddItem = rs!dbNavn List1.AddItem = rs!dbAdresse List1.AddItem = rs!dbPostnummer + " " + rs!dbBy List1.AddItem = rs!dbLand List1.AddItem = rs!dbTelefonnummer List1.AddItem = rs!dbMobilnummer List1.AddItem = rs!dbEmail List1.AddItem = rs!dbHjemmeside List1.AddItem = rs!dbFoedselsdag End If rs.MoveNext Loop End Sub
rs! er for at hente et recordset rs!dbNavn - dbNavn er det recorden hedder i min accessdatabase :O)
Private Sub comNavn_Click() Set ws = Workspaces(0) Set db = ws.OpenDatabase(App.Path & "\dataopsamling.mdb") Set rs = db.OpenRecordset("SELECT * FROM Hardware") rs.MoveFirst Do While rs.EOF = False If rs!dbId = comNavn.ItemData(comNavn.ListIndex) Then List1.AddItem (rs!Netkort) ' Skal den hedde det ?? I min DB hedder tabellen Hardware og den lodrette 'søjle' hedder F.eks Netkort List1.AddItem (rs!RAM) End If rs.MoveNext Loop End Sub
Hvis jeg nu vil have flere linier (valgmuligheder) ind i min combo så kan jeg forstå på dig at det er de her linier der skal gentages :
Set ws = Workspaces(0) Set db = ws.OpenDatabase(App.Path & "\dataopsamling.mdb") Set rs = db.OpenRecordset("SELECT * FROM Hardware") rs.MoveFirst Do While rs.EOF = False If rs!Id = comNavn.ItemData(comNavn.ListIndex) Then List1.AddItem (rs!Netkort) List1.AddItem (rs!RAM) End If rs.MoveNext Loop
Men er det ikke muligt at få de forskellige tabel- og forespørgslesnavne i combo'en og afhængig af hvilken en 'entry' man vælger, kommer resultatet i list'en ?
jo du kan selv oprette data i comboboxen....det jeg har gjort er det den henter din entry i databasen, men du fylder bare selv comboboxen...og så laver din forbindelser med databasen ud fra det :O)
Havde lige en på 6 mdr. der skulle have mad :O) Mailer du din DB og så laver jeg lige et lille eksempel :O)
/Tubber
Synes godt om
Ny brugerNybegynder
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.