Avatar billede domino1977 Nybegynder
09. september 2002 - 13:02 Der 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"???
Avatar billede bccinlove Nybegynder
09. september 2002 - 13:07 #1
Hej igen,

Do Until recRecordset.EOF
    Combo1.AddItem recRecordset("Kontakt")
    recRecordset.MoveNext
Loop
Avatar billede bccinlove Nybegynder
09. september 2002 - 13:08 #2
Feltet i databasen hedder "Kontakt" ikke sandt?
Avatar billede domino1977 Nybegynder
09. september 2002 - 13:22 #3
Jow takker.... men den henter jo allerede fra en anden tabel.... og nu er der ged i den.....
Avatar billede bccinlove Nybegynder
09. september 2002 - 13:24 #4
hmmm....

Hvorfor?

Du kan sagtens hente data fra flere tabeller!
Avatar billede domino1977 Nybegynder
09. september 2002 - 13:26 #5
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....
Avatar billede domino1977 Nybegynder
09. september 2002 - 13:28 #6
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....
Avatar billede bccinlove Nybegynder
09. september 2002 - 13:32 #7
Lav et nyt recordset fx recKontakt

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
Avatar billede domino1977 Nybegynder
09. september 2002 - 13:43 #8
Den kommer med den fejlmeddelse:

"Der er for få parametre, der var ventet 1"

Hvorfor gør den det??
Avatar billede bccinlove Nybegynder
09. september 2002 - 13:45 #9
hvor i koden?
Avatar billede domino1977 Nybegynder
09. september 2002 - 13:56 #10
Den stopper her:

Set recKontakt = datdb.OpenRecordset(strSQL)
Avatar billede bccinlove Nybegynder
09. september 2002 - 13:59 #11
så er det sikkert fordi, at det der står i strSQL ikke er gyldigt...
Tjek navne på tabellen og feltet!
Avatar billede domino1977 Nybegynder
09. september 2002 - 14:02 #12
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 & "'"

SÅ går det gal.....
Avatar billede bccinlove Nybegynder
09. september 2002 - 14:04 #13
hvad står der i list1.text ? hold musen over koden når den går gal... i debug!
Avatar billede domino1977 Nybegynder
09. september 2002 - 14:48 #14
Jahuuuu..... fandt ud af hvad der var gal!!!!

Takker........

Vil du lige tjene 10 ponts mere???
Avatar billede bccinlove Nybegynder
09. september 2002 - 14:50 #15
Perfekt!

Ja kom bare med den!
Avatar billede domino1977 Nybegynder
09. september 2002 - 14:54 #16
He he.... THAT'S THE SPIRIT!!!

Jow ser du!!

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???
Avatar billede domino1977 Nybegynder
09. september 2002 - 14:58 #17
Nej glem det... har fået det til at virke!!!!!!!!!
Avatar billede domino1977 Nybegynder
09. september 2002 - 15:01 #18
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
---------------------------------------------------------------------------
Avatar billede bccinlove Nybegynder
09. september 2002 - 18:12 #19
Sorry blev lige optaget af noget andet... ser på det first thing in the morning!
Avatar billede bccinlove Nybegynder
10. september 2002 - 10:41 #20
Jeg er ikke helt sikker på hvad du mener!
Avatar billede domino1977 Nybegynder
10. september 2002 - 10:44 #21
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!!!
Avatar billede bccinlove Nybegynder
10. september 2002 - 10:47 #22
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!
Avatar billede bccinlove Nybegynder
10. september 2002 - 10:48 #23
Må jeg egentlig spørge hvad det er for et program du er ved at lave?
Avatar billede domino1977 Nybegynder
10. september 2002 - 10:50 #24
En kundedatabase!!!

Jow jow...!!!

Kan så svarer på denne ting her?

Hvis jeg vil have ryddet et textbox, ligesom en listbox... hvordan gør jeg så det?? Jeg kan ikke bruge denne kode her:

kontakt.Clear
ELLER
kontakt.text.Clear
Avatar billede domino1977 Nybegynder
10. september 2002 - 10:51 #25
Jamen hvis jeg KUN har koden under formload... så sker der ikke noget!! MEN forbinder jeg koden med en knap istedet.... så virker det!!!!
Avatar billede bccinlove Nybegynder
10. september 2002 - 10:52 #26
Rydde en textbox...

Kontakt.text = ""
eller jeg tror faktisk at du bare kan skrive
Kontakt = ""

Et CRM-system?
Avatar billede bccinlove Nybegynder
10. september 2002 - 10:58 #27
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

End Sub
Avatar billede bccinlove Nybegynder
10. september 2002 - 11:02 #28
Står der noget i dit felt "navn" i din vb app.?
Avatar billede domino1977 Nybegynder
10. september 2002 - 11:09 #29
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!!
Avatar billede bccinlove Nybegynder
10. september 2002 - 11:13 #30
jeg forstår ikke hvad du mener....

Hvad med din combobox?
Avatar billede domino1977 Nybegynder
10. september 2002 - 11:17 #31
Den er jo blevet til en liste.....
Avatar billede bccinlove Nybegynder
10. september 2002 - 11:20 #32
Hvad er det så jeg skal svare på nu?
Avatar billede bccinlove Nybegynder
10. september 2002 - 11:28 #33
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!
Avatar billede domino1977 Nybegynder
10. september 2002 - 11:38 #34
Nej takker....det her er bare en lille fritidsbeskæftigelse som jeg laver til en skole/institution gratis....
Avatar billede bccinlove Nybegynder
10. september 2002 - 11:40 #35
Ok....

Men hvad er det jeg skal hjælpe med nu?
Avatar billede domino1977 Nybegynder
10. september 2002 - 12:33 #36
Ikke andet end den der formload!!
Avatar billede bccinlove Nybegynder
10. september 2002 - 12:38 #37
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!
Avatar billede domino1977 Nybegynder
10. september 2002 - 12:55 #38
Nej nej nej.... det er ikke det.... skal jeg sende dig filen så kan du tjekke den ud?????
Avatar billede bccinlove Nybegynder
10. september 2002 - 13:01 #39
Det ville nok være det nemmeste...

tms@it.dk
Avatar billede domino1977 Nybegynder
10. september 2002 - 13:12 #40
Er sendt
Avatar billede domino1977 Nybegynder
10. september 2002 - 13:18 #41
Og så er selve source filen osse sendt
Avatar billede bccinlove Nybegynder
10. september 2002 - 13:34 #42
Tak for det!

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

End Sub
Avatar billede bccinlove Nybegynder
10. september 2002 - 13:35 #43
Desuden kan jeg se, at du ikke helt at forstået det mest smarte ved brugen af DAO....
Avatar billede bccinlove Nybegynder
10. september 2002 - 13:46 #44
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!

/troels
Avatar billede bccinlove Nybegynder
10. september 2002 - 13:46 #45
Jeg sender det lige tilbage til dig!
Avatar billede domino1977 Nybegynder
10. september 2002 - 13:59 #46
Jaaa..... fedt nu virker den ikke!!
Avatar billede bccinlove Nybegynder
10. september 2002 - 14:02 #47
Hvad skal det sige?
Avatar billede domino1977 Nybegynder
10. september 2002 - 14:09 #48
Aner det ikke... den går i stå!!! ved denne linie:

Set recRecordset = datDB.OpenRecordset(strSQL)

Og kommer med denne fejlmelding:

Run-time '91'
Object not variable or Eith block variable not set
Avatar billede bccinlove Nybegynder
10. september 2002 - 14:10 #49
i det projekt jeg har sendt dig eller det du selv har lavet?
Avatar billede domino1977 Nybegynder
10. september 2002 - 14:12 #50
I den du lige har sendt mig!
Avatar billede bccinlove Nybegynder
10. september 2002 - 14:15 #51
Og nu kommer der lige et andet!
Avatar billede domino1977 Nybegynder
10. september 2002 - 14:19 #52
Virker stadig ikke... samme problem!!!
Avatar billede bccinlove Nybegynder
10. september 2002 - 14:20 #53
Var det bedre?
Avatar billede bccinlove Nybegynder
10. september 2002 - 14:21 #54
Er du sikker på det... har du udpakket og åbnet det rigtige projekt?

Det virker nemlig her!
Avatar billede domino1977 Nybegynder
10. september 2002 - 14:24 #55
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å!!!
Avatar billede bccinlove Nybegynder
10. september 2002 - 14:27 #56
sekund!
Avatar billede bccinlove Nybegynder
10. september 2002 - 14:32 #57
Okay...

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!!!

Du kan bruge "unload me" istedet....

Så hvis du i stedet skriver:

Private Sub LUK_Click()

liste.Clear
kontakt = ""
direktetlf = ""
email = ""
tlf = ""
stilling = ""
beskrivelse = ""
Unload Me            <-------------------------------SE

End Sub
Avatar billede bccinlove Nybegynder
10. september 2002 - 14:49 #58
Virker det?
Avatar billede domino1977 Nybegynder
10. september 2002 - 14:54 #59
Jepper!!!!

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!!!!
Avatar billede bccinlove Nybegynder
10. september 2002 - 14:58 #60
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" ???

Korrekt???
Avatar billede domino1977 Nybegynder
10. september 2002 - 15:08 #61
Jepper!!!

Og det virker osse... men man skal bare gå en frem og en tilbage (he he he) før det virker!! Det er ligesom om at den ikke opdaterer!!
Avatar billede bccinlove Nybegynder
10. september 2002 - 15:15 #62
Jeg kan nu slet ikke se at der kommer til at stå noget den combobox...???
Avatar billede domino1977 Nybegynder
10. september 2002 - 15:21 #63
jow... prøv at skriv 2 nede i søge feltet... klik på kunde 2 og gå så op i comboboxen!!

Så kommer kunde 2's kontaktpersoner!!!
Avatar billede bccinlove Nybegynder
10. september 2002 - 15:31 #64
Nix!
Avatar billede domino1977 Nybegynder
10. september 2002 - 15:39 #65
Jamen sådan virker det da i den jeg har!!! Og det er da den jeg har sendt dig!!!!
Avatar billede bccinlove Nybegynder
10. september 2002 - 15:51 #66
hmmm...

mystisk!
Avatar billede domino1977 Nybegynder
11. september 2002 - 13:39 #67
jeps.....

Nå... men det må jeg jo selv lige finde ud af engang!!!!

Har du fået dine point??
Avatar billede bccinlove Nybegynder
11. september 2002 - 13:57 #68
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!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester