09. september 2002 - 13:02Der er
67 kommentarer og 1 løsning
Indsæt data i Combobox
Jeg har denne sætning her: ------------------------------------------------------- Private Sub Form_Load() Set datdb = DBEngine.Workspaces(0).OpenDatabase("data.mdb") strSQL = "Select * from Kontakt" Set recRecordset = datdb.OpenRecordset(strSQL) End Sub ------------------------------------------------------- Den har altså oprettet forbindelse til en access database.... men kan man ikke indsætte en kode mere, der for en konlonne til at blive indsat i en combobox ved navnet "kontaktperson"???
Prøv at se her: --------------------------------------------------------------------------- Private Sub List1_Click() strSQL = "SELECT * FROM kunder WHERE navn ='" & List1.Text & "'" Set recRecordset = datdb.OpenRecordset(strSQL)
strSQL = "SELECT * FROM kontakt WHERE navn ='" & List1.Text & "'" Set recRecordset = datdb.OpenRecordset(strSQL) Do Until recRecordset.EOF kontaktperson.AddItem recRecordset("Kontakt") recRecordset.MoveNext Loop --------------------------------------------------------------------------- Den henter fra den samme database.... MEN den ene tabel hedder kunder og den anden kontakt....
Det er nemlig sådan at man søger efter et firma, og resultatet vises i en liste... når man klikker på listen med et firmanavn, hopper den over til det firma, MEN den skal osse hive kontakpersonerne fra den anden tabel....
Dim recKontakt as recodset strSQL = "SELECT kontakt FROM kontakt" set recKontakt = datdb.openrecordset(strSQL) Do Until recKontakt.EOF kontaktperson.AddItem recKontakt("Kontakt") recKontakt.MoveNext Loop
Altså det er ikke noget problem når jeg bruger DIN kode: --------------------------------------------------------------------------- strSQL = "SELECT kontakt FROM kontakt"
MEN når jeg sætter denne her ind:
strSQL = "SELECT * FROM kontakt WHERE navn ='" & List1.Text & "'"
Jeg har lige et lille problem med denne kode her: --------------------------------------------------------------------------- strSQL = "SELECT * FROM Kontakt WHERE konto Like '*" & Navn.Text & "*' " Set recRecordset = datdb.OpenRecordset(strSQL) liste.Clear Do While Not recRecordset.EOF liste.AddItem recRecordset("kontakt") recRecordset.MoveNext Loop End Sub --------------------------------------------------------------------------- Hvis jeg ligger den under Form_load sker der ikke noget... men linker jeg den op med en knap virker den fint..... hvorfor???
Bej vent lige det virker sgu ikke alligevel!!!! ---------------------------------------------------------------------------´ Private Sub Form_Load() liste.Clear Set datdb = DBEngine.Workspaces(0).OpenDatabase("I:\CRM\data\data\data.mdb") strSQL = "SELECT * FROM Kontakt WHERE konto Like '*" & navn.Text & "*' " Set recRecordset = datdb.OpenRecordset(strSQL) Do While Not recRecordset.EOF liste.AddItem recRecordset("kontakt") recRecordset.MoveNext Loop
End Sub ---------------------------------------------------------------------------
Det er istedet for at jeg skal trykke på en knap hver gang jeg skal have listet de kontaktpersoner der hører til det firma så skal den køres igennem form load!!!
Det kode du har under hændelsen form_load bliver kun afspillet når formen loader! Men så skulle kontaktpersonerne også være der! Du behøver ikke at loade dem igen!
Behøver du udvælgelses sætningen i SQL? Denne her: "SELECT * FROM Kontakt WHERE konto Like '*" & navn.Text & "*' " ???
Kan du ikke nøjes med:
"SELECT * FROM Kontakt" ???
Dermed får du godt nok alle records i tabellen kontakt, er det i orden?
Min kode til form_load ser sådan ud og comboBox'en bliver fyldt pænt ud...
Private Sub Form_Load() Set datdb = DBEngine.Workspaces(0).OpenDatabase(App.Path & "\db1.mdb") 'Åbner din database strSQL = "Select * from ark1" 'vælger dit poster til et recordset Set recRecordset = datdb.OpenRecordset(strSQL) 'åbner recordsettet
UpdateFelter
Do Until recRecordset.EOF Combo1.AddItem recRecordset("ID") recRecordset.MoveNext Loop
OK... lad os sige at du vælger en firma, åbner en ny form hvor den automatisk udvælger de kontaktpersoner der passer til det firma... det har jeg gjort ved udvælgning af navnet... derefter skal den liste dem i en liste box!!
Hvis du skulle være interesseret så har jeg et lille firma, der faktisk udføre udviklingsopgaver som denne...
Jeg kan lave det fuldstændige program til dig, hvis du giver mig nogle forslag til hvad du ønsker programmet skal kunne og så kan du købe det efterfølgende!
Ja okay, men hvis du loader en ny form og du vil referere til et textfelt på en anden form skal du skrive
formensNavn.textfeltNavn.text
Jeg tror at problemet er, at de ikke står noget i det tekst felt du kalder "Navn"
Alternativt kan oprette et modul og dim'e en string her f.eks strText denne variabel er tilgængelig for alle forms så lige inden du loader din nye form med
formNavn.load
skriver du strText = Navn.text
Så har du gemt der der står i textfeltet navn i en global variabel der kan læses af alle forms!
Jeg har fundet fejlen... det er netop som jeg skrev!
Du skal i dit SQL-statement hvor du udvælger de poster der er relevante, altså de personer der hører til den valgte virksomhed, referere til hvilken form programmet skal finde textfeltet "navn"....
Din form_load på formen "Kontakt" skal se ud som følger:
Private Sub Form_Load() Set datdb = DBEngine.Workspaces(0).OpenDatabase("data.mdb") strSQL = "SELECT * FROM Kontakt WHERE konto Like '*" & Kundekartotek.navn.Text & "*'" Set recRecordset = datdb.OpenRecordset(strSQL)
liste.Clear
Do While Not recRecordset.EOF liste.AddItem recRecordset("kontakt") recRecordset.MoveNext Loop
Hver gang du vil lave noget i databasen åbner du den konsekvent... selvom den er åben.... det er ikke særlig smart rent performancemæssigt!
Det eneste du skal når du vil lave en eller anden database operation er at skrive dit SQL statement ind i strSQL og derefter åbne et recordset med de poster du har udvalgt i dit SQL-statement!
Den virker osse.... sorry... MEN, prøv at åben kunde 1, og se hans kontaktpersoner... gå så ud og søg under Kunde 2, og se hans kontaktpersoner... der er ingen??? MEN det har han altså!!!
Det er fordi du ved "Luk" knappen på formen kontakt bruger kommandoen "me.hide". Denne kommando "gemmer" kun form men den er der i virkeligheden stadig!!!
He he he .................... JUBiiiiiiiiiiiiiiiii!!!!!!!!!!!!
Prøv at se på selve forsiden af programmet... der kan du osse vælge kontaktpersoner.... den vælger de kontaktpersoner der er under liste i den anden form... kan man gøre det samme ved den?? Ellers skal man hoppe til en anden kunde og så tilbage igen før at det virker!!!!
Først og fremmest: DU KAN GØRE ALT HVIS DU ER SNEDIG NOK!!!
Skal lige forstå dig ret...
Du vil have den combobox der hedder "kontaktperson" på formen "kundekartotek" udfyldt med de samme navne som der står i din liste på formen "kontakt" ???
Nogen vil måske nok mene at du i dette spm. har fået mere end hvad der er 15 point værd! Men som tidligere sagt så et det op til dig :-)
Jeg er ikke den store point-hunter... er her mest for sjov skyld!!!
Lige en anden ting... du bør ikke lave et sådan program gratis... du kan få en god sjat penge for det!
Skal du have hæftet flere funktioner til f.eks. Outlook kompabilitet eller noget andet så kontakter du mig bare!
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.