18. oktober 2002 - 20:21Der er
18 kommentarer og 1 løsning
Gemme data fra ComboBox
Et, forhåbentligt, simpelt spørgsmål.
Jeg har en AccessDB, med 2 tabeller: Employee og Category. Employee tilhører altid 1 af 3 mulige kategorier. Jeg har en form, lavet i VB 5.0 (jeg arbejder med 6.0) hvor man indtaster alle "stamdata" om hver employee. Men jeg skal tilføje en combobox, hvor man skal vælge en kategori. Jeg kender kun til VB fra Access, og har aldrig arbejdet med "rigtig" VB før. Regner med at jeg skal kode mig ud af det. Any ideas?
Dim ws As Workspace Dim db As Database Dim rs As Recordset
Private Sub Command1_Click() If Text1.Text = "" Then MsgBox "Der er et tomt felt, det må der ikke være." ElseIf Combo1.Text = "" Then MsgBox "Der er et tomt felt, det må der ikke være." Else Set ws = Workspaces(0) Set db = ws.OpenDatabase(App.Path & "\data.mdb") db.Execute "INSERT INTO table1 ('" & Combo1.Text & "') VALUES ('" & Text1.Text & "');" End If End Sub
Combo1.Text er den værdi som feltet hedder i din db, og Text1.Text er den værdi der sættes ind i feltet med navnet i combo1.text....
Du skal også bruge referencen Microsoft DAO 3.51 eller 3.6....
Text1.Text er den text der står skrevet i det tekstfelt i din form. Combo1.Text er der hvor de 3 kategorier skal stå, så kan man ikke selv skrive dem....
det min if sætning gør er den chekker om der er tomme felter, hvis der ikke er tager den texten fra Text1 og sætter ind i det felt som passer til kategorien...
Skal vist have tingene skåret ud i pap: Min Combobox hedder ComboCategory i en form der hedder Employee. Kategorivalgene ligger i en tabel, der hedder Category med 1 felt i, der hedder Category. Hvis man vælger en værdi i Categorytabellen, skal denne lagres i feltet Category i Employee-tabellen.
Jeg har forsøgt med begge løsningsforslag, men uden held :o( Kan I uddybe udfra det jeg har skrevet?
Der findes en form, hvor man taster al data om hver employee.. Bl.a. skal man kunne vælge om den pågældende tilhører kategori1, 2 eller 3 fra en Combobox. Navnene på kategorierne f.eks. "leder", "sekretær", "andet" ligger i en tabel "Category". Dette skal, ligesom navn, adresse, osv. lagres i Employee-tabellen i feltet Category.
Her er i hvertfald for at hente data ind i din combobox.....
Dim ws As Workspace Dim db As Database Dim rs As Recordset
Set ws = Workspaces(0) Set db = ws.OpenDatabase(App.Path & "\data.mdb") Set rs = db.OpenRecordset("SELECT * FROM tabel") If Not rs.EOF Then rs.MoveFirst Do While Not rs.EOF Combo1.AddItem rs!Category rs.MoveNext Loop End If
Data.mdb er dit databasenavn Tabel er tabelnavn rs!category er de recordsets der er i den tabel under det feltnavn der hedder category
Jeg taster manuelt de tre kategorier i Category-tabellen, men de skal IND i den samme DB, bare i en anden tabel (Employee) Er det nemmere at droppe Category-tabellen og blot skrive hvad der skal være i Comboboxen i VB og herefter lagre det i Employee-tabellen?
Category-tabellen mente jeg bare gjorde det lettere, hvis man senerehen skal tilføje en kategori?
Nu har jeg fikset ComboBoxen så den kan vise de tre kategorier - det blev løst ved at skrive det i Form_Load() i stedet for at bruge Category-tabellen. Men hvordan lagrer jeg så den valgte kategori med hver Employee?
Private Sub Command1_Click() If Combo1.Text = "" Then MsgBox "Der er et tomt felt, det må der ikke være." Else Set ws = Workspaces(0) Set db = ws.OpenDatabase(App.Path & "\data.mdb") db.Execute "INSERT INTO table1 (Employe) VALUES ('" & Combo1.Text & "');" End If End Sub
Takker... Håber det virker.. Jeg vil se på det i morgen formiddag.
/U.K.
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.