Avatar billede smolf Nybegynder
05. april 2000 - 08:49 Der er 21 kommentarer

Fører hele den hentede tabel over i combobox ?

Jeg har en access database og jeg har hentet dataene, men jeg kan ikke få en hel liste ind i en combobox. Hvis jeg henter "navn" i min tabel, får jeg kun det øverste navn med i min combobox, der vil jeg have alle de navne der er.

Hvodden gøres det ?
Avatar billede snowball Novice
05. april 2000 - 09:18 #1
Nu ved jeg ikke lige hvordan det laves i VB, men i Delphi skal man lave dette:

while not din_query.EOF do
  begin
    din_combobox.Items.Add(din_query.FieldByName('navn').AsString);
    din_query.Next;
  end;

Jeg tror det er det du har glemt. Den "fejl" du beskriver får man nemlig i Delphi hvis man har glemt ovenstående !!!

Snowball
Avatar billede smolf Nybegynder
05. april 2000 - 09:33 #2
Det virker slet ikke :O((((
ellers tak :O)

SM0LF
Avatar billede snowball Novice
05. april 2000 - 09:42 #3
Du skal selvfølgelig tilpasse det til VB synstakst (hvis du ikke har gjort det!)

Kan du ikke poste noget kode ? Det ville gøre det nemmere !!

Snowball
Avatar billede smolf Nybegynder
05. april 2000 - 11:20 #4
Private Sub Form_Load()
Set Combo1.DataSource = Data1
Do While Data1.Recordset.EOF = False
Combo1.AddItem = Data1.Recordset("navn")
Data1.Recordset.MoveNext
Loop
End Sub

Det er det jeg har
Jeg har addet en Data Kontrol der er hidden, for at åbne til DB'en

SM0LF
Avatar billede snowball Novice
05. april 2000 - 12:15 #5
Prøv det her:

Private Sub Form_Load()
Set Combo1.DataSource = Data1
Data1.Recordser.MoveFirst
Do While Data1.Recordset.EOF = False
Combo1.AddItem = Data1.Recordset("navn")
Data1.Recordset.MoveNext
Loop
End Sub

Ikke en stor ændring, og ved heller ikke om det virker, da jeg ikke lige har mulighed for at afprøve det !

Snowball
Avatar billede smolf Nybegynder
05. april 2000 - 12:53 #6
Det ser heller ikke ud til at virke - den siger : Argument not optional

hvis jeg sletter additem siger den : Type mismatch

SM0LF
Avatar billede snowball Novice
05. april 2000 - 13:58 #7
Så ved jeg ikke hvad der er galt ;(

Snowball
Avatar billede tdaugaard Nybegynder
05. april 2000 - 17:10 #8
<< smolf >>

Hvis du vil, så prøv at sende dit VB projekt, så skal jeg da gerne finde ud af hvad der er galt med det. Jeg programmerer selv meget i VB. Min email add er thomas@tdaugaard.dk

<< snowball >>

"Data1.Recordser.MoveFirst" skulle vist ha været
"Data1.Recordset.MoveFirst" ..
Avatar billede snowball Novice
05. april 2000 - 17:58 #9
Ja ok, en lille svipser ;)

Snowball
Avatar billede tdaugaard Nybegynder
05. april 2000 - 18:38 #10
Det sker :-) ...
Avatar billede nerøs Nybegynder
05. april 2000 - 23:54 #11
Prøv at lade være med at binde comboboxen til data1 men ellers som i smolfs metode. Delphi varianter er heller ikke bundet, såvidt jeg kan se.

Søren
Avatar billede smolf Nybegynder
06. april 2000 - 12:55 #12
Jeg syntes ikke jeg kan få nogle af de givne forslat til at virke :O(((

Nerøs kan du ikke lige prøve at skrive min kode om ???

SM0LF
Avatar billede smolf Nybegynder
06. april 2000 - 12:57 #13
tdaugaard : Det er ikke fordi jeg ikke vil sende det, men jeg vil helst selv side og sætte koden ind, så jeg forstår det :O))

SM0LF
Avatar billede tdaugaard Nybegynder
06. april 2000 - 13:03 #14
<< smolf >>

Forstår jeg godt :-)
Avatar billede nerøs Nybegynder
06. april 2000 - 20:28 #15
Noget i denne retning hvor data1 er et recordset. Men comboboxen er altså ikke bundet til data:

DIM DATA1 AS RECORDSET

Private Sub Form_Load()
Do While not Data1.EOF
Combo1.AddItem =DATA1!Fieldname
data1.MoveNext
Loop
End Sub

Men man kan bruge controllerne microsoft datalist controls til at fylde en bunden combox i et hug.

Avatar billede smolf Nybegynder
07. april 2000 - 09:50 #16
Nerøs

Når jeg kører den kode du gav siger den User or undefined string til Dim DATA1 as rescordset

SM0LF
Avatar billede nerøs Nybegynder
08. april 2000 - 15:07 #17
Ja ovennævnte kode kræver at du får dimmensioneret et recordset. jeg ved ikke hvordan man får fat i recordsettet fra en datakontrol. Jeg plejer at bruge DAO, men ADO er vist det man bør bruge.
Men som skrevet så er det altså muligt at fylde en DataCombo automatisk med data fra en datacontrol. Brug "Microsoft ADO datacontrol 6.0 (OLEDB)" sammen med "Microsoft datalist controls (OLEDB)"

Man kan tilføje disse kontroller ved at højreklikke på toolboxen, vælge "components" og finde dem på listen over controls.
Avatar billede nbkh Nybegynder
09. april 2000 - 08:42 #18
SelectPosition = "SELECT DISTINCT Position FROM Spillerdatabase"
Select="Select Distinct navn form DinDatabase"
Set Data1.Recordset = db.OpenRecordset(Select)
Data1.Recordset.MoveFirst
While Not Data3.Recordset.EOF
NavnetPåComboen.AddItem Data1.Recordset.Fields("navn")
Data1.Recordset.MoveNext
Wend

Hejsa..det har virker, selvfølgelig når du retter det til. Tager en af hvert navn.
Avatar billede nbkh Nybegynder
09. april 2000 - 08:43 #19
Ups..uden øverste linie selvfølgelig, kom med ved en fejl
Avatar billede smolf Nybegynder
11. april 2000 - 10:23 #20
Jeg ved ikke hvem det er det lige nøjagtigt skal have pointene :O)))

Stykkede lidt sammen her og der og fik følgende :

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 & "\adressebog.mdb")
Set rs = db.OpenRecordset("SELECT * FROM adressebog")
If Not rs.EOF Then
    rs.movefirst
    Do While Not rs.EOF
        Combo1.AddItem rs!Navn
        rs.MoveNext
    Loop
End If
End Sub

+ jeg skulle sætte en refference :O))

SM0LF

P.S. I kan jo finde en måde og dele på :)
Avatar billede tdaugaard Nybegynder
10. juni 2000 - 18:53 #21
<< SMOLF >>

Bare acceptér alle svar så pointsne bliver delt ligeligt.
Det er vist på tide at få lukket ?'et.
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