Private Sub Form_Load() Dim ws As Workspace Dim db As Database Dim rs As Recordset
Set ws = Workspaces(0) Set db = ws.OpenDatabase(App.Path & "\usr.mdb") Set rs = db.OpenRecordset("SELECT * FROM tblClient") If Not rs.EOF Then rs.MoveFirst Do While Not rs.EOF Combo1.AddItem rs!CompanyName rs.MoveNext Loop End If
End Sub
'Men..., den gir bare alle CompanyName's Vil knytte den sammen med txtBoxer sådan at Boxer oppdateres når jeg velger fra ComboBoxen
OK...der skød jeg vist noget under målet. Hvis jeg har forstået dig ret vil du have oplysninger fra tilhørende felter i tabellen i noge tekstboxe. Jeg har omskrevet din kode en anelse:
Private ws As Workspace Private db As Database Private rs As Recordset
Private Sub Combo1_Click() Set rs = db.OpenRecordset("SELECT * FROM tblClient WHERE companyname='" & Combo1.Text & "'") Text1.Text = rs!employees Text2.Text = rs!address Text3.Text = rs!Type
End Sub
Private Sub Form_Load()
Set ws = Workspaces(0) Set db = ws.OpenDatabase("f:\usr.mdb") Set rs = db.OpenRecordset("SELECT * FROM tblClient") If Not rs.EOF Then rs.MoveFirst Do While Not rs.EOF Combo1.AddItem rs!CompanyName rs.MoveNext Loop End If
Skal vi gjøre et 'Dael' før jeg deler ud points? Jeg har et par spørgsmål til først når vi er inne på samme bølgelengden. Du kan få 20 points ekstra for hver svar. Andre som kan hjelpe med er velkommen :)
Vi bygger på svar fra Knico 14/01-2003 19:24:29
--- Jeg skal lave tre knapper sådan:
Private Sub Command1_Click() 'Oppdaterer endringer i: Text1.Text = rs!employees Text2.Text = rs!address Text3.Text = rs!Type End Sub
Private Sub Command2_Click() Sletter: rs = db.OpenRecordset("SELECT * FROM tblClient WHERE companyname='" & Combo1.Text & "'")
End Sub
Private Sub Command3_Click() Filtrere: 'Vise bare CompanyName's i: Combo1.AddItem rs!CompanyName Med Text3.Text = rs!Type = 2 '/bruger tal fra 1 til 3 i felten
Private Sub Command1_Click() db.Execute ("UPDATE tblClient SET employees=" & Val(Text1.Text) _ & ", address='" & Text2.Text & "', type=" & Val(Text3.Text) _ & " where companyname='" & Combo1.Text & "'") End Sub
Private Sub Command2_Click() db.Execute ("DELETE FROM tblClient where companyname='" & Combo1.Text & "'")
Combo1.Clear Text1 = "" Text2 = "" Text3 = "" Set rs = db.OpenRecordset("SELECT * FROM tblClient") If Not rs.EOF Then rs.MoveFirst Do While Not rs.EOF Combo1.AddItem rs!CompanyName rs.MoveNext Loop End If End Sub
Command3 er jeg ikke helt sikker på hvad du mener med.
Command3 er jeg også lidt sikker på. Lyder til at du vil begrænse / filtrere ud for en type. Fx
sub filtrer(type) if not isnumeric(type) then exit sub Set rs = db.OpenRecordset("SELECT * FROM tblClient where type=" & type) While Not rs.EOF Combo1.AddItem rs!CompanyName 'Hvis du fx har et autonummer i din tabel, kan du med 'fordel gemme dette i comboboxens itemdata. Herved optimerer du 'din applikation, hvis du altså anvender dette id i senere selects. Combo1.Itemdata(Combo1.Newindex) = rs!id rs.MoveNext Wend end sub
knico -> Mange tak. zembla ->Tak for det, du er narme +/-,. Jeg skal teste det nu.
k & z -> Jeg skal prøve at smin det sammen og se hva det blir til. Jeg bruger ikke autonummer men nummer fra 1 til 3 i rs!Type som jeg gemmer. Felt rs!Type settes ind avhengig av brugertype: 1 eller 2 eller 3. I Comboboxen skal jeg ha fx alle med nummer 2.
knico -> Command3 ble forkert Med andre ord se: '''kommentar:
Private Sub Form_Load()
Set ws = Workspaces(0) Set db = ws.OpenDatabase("f:\usr.mdb") Set rs = db.OpenRecordset("SELECT * FROM tblClient") ''' jeg vil ha alle rs!CompanyName med Type=2 fra tblClient''' If Not rs.EOF Then rs.MoveFirst Do While Not rs.EOF Combo1.AddItem rs!CompanyName rs.MoveNext Loop End If
Set rs = db.OpenRecordset("SELECT * FROM tblClient WHERE type=" & Val(Text3.Text)) If Not rs.EOF Then Combo1.Clear Text1 = "" Text2 = "" Text3 = "" rs.MoveFirst Do While Not rs.EOF Combo1.AddItem rs!CompanyName rs.MoveNext Loop End If End Sub
hej, ved i om funktionen med Combo1.Itemdata(Combo1.Newindex) = rs!id er fjernet fra Office XP, hvis jeg insætter den linie får jeg fejl. Set rs = Db.Execute("SELECT * FROM owners") If Not rs.BOF Then Do Until rs.EOF cboOwner.AddItem rs("name") cboOwner.i.itemdata(cboOwner.NewIndex) = rs("id") rs.MoveNext Loop End If
giver fejl når jeg prøver at Run i VB. Compile error: Method or data member not found
Jeg det opdagede jeg, men det er ikke den der gør det. Fejlen er der endnu. Har prøvet at oprette et nyt userform med kun en listbox og kopieret en eksempel fra microsoft ind og får samme fejl.
Nej og heller ikke NewIndex. Det er fra VB editoren i Excel jeg prøver at lave det, Microsoft Visual Basic 6.3
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.