Combobox vullen adhv query

Status
Niet open voor verdere reacties.

watrex

Gebruiker
Lid geworden
23 jan 2007
Berichten
16
Ik maak in een form in Access gebruik van twee combo's.
Aan de hand van wat ik in de eerste aanklik moeten er gegeven uit de database gehaald
worden voor in de tweede combo.
Hoe krijg ik gegevens van in een database in een combo dmv
de code. Zelfs volgende code werkt niet eens:

Code:
cboTest.AddItem("test", 1)
of
cboTest.AddItem "Chardonnay"
Code:



Ik had ook ergens iets gezien van dat je de recordset aanmaakt, dan het aantal
records telt en dat dan gebruikt als index om je combo te vullen.
Maar eerst zou bovenstaande code toch moeten werken??

Bij Visual Basic kan je gebruik maken van ADO ed. Maar dat werkt zeker niet
in Access. ..
 
Het vullen van de combo kan wel op deze manier:

Code:
cboTest.AddItem Item:=rs!naam, Index:=0

Alleen dat mijn rs.RcordCount altijd op 1 blijft hangen, terwijl ik meerdere records heb ...
Ik zie niet waar die blijft hangen.
Misschien iemand een idee?
 
Ook al opgelost. Juist voor de .RecordCount een .MoveLast doen.
Dat ik dat vergeten was ...

Code:
If Me.cboTypeaanvrager.Value = "Klant" Then 'hier moet property Bound Column op 2 staan, waarde klant komt uit 2e kolom
         Set rsafd = CurrentDb.OpenRecordset("Select * from typeklant") 'where naam = '" & Me.klanttype & "'")
         
         rsafd.MoveLast
         aantal = rsafd.RecordCount
         'MsgBox aantal
         rsafd.MoveFirst
             If aantal > 0 Then
                        For i = 1 To aantal
                            Me.cboTest.SetFocus
                            cboTest.AddItem Item:=rsafd!naam, Index:=0
                            rsafd.MoveNext
                        Next i
        
                Else
                     MsgBox "Geen records gevonden."
             End If
     End If
 
er is anders nog een andere oplossing:

ge kiest uw eerste waarde in uw combobox ( cb_1 laten we zeggen)

Dan zet je wat code zodat vanaf WAARDE1 gekozen is hij het volgende uitvoert
(WAARDE1 komt dus uit TABLE1):

Code:
sql_qry1 = "SELECT wat_je_wil FROM TABLE2, TABLE1 WHERE TABLE1.blabla_id= TABLE2.blabla_id AND TABLE1.blabla_naam LIKE '" & cb_1.Value & "' ;"

dan verbind je die query met uw cb en hopla!

Maar ik weet wel niet of het " .Value " is of iets anders. Dat weet ik zelf ook niet.. :eek:
Hopelijk is het duidelijk.

Ik weet het. Dit antwoord lijkt op het vorige, maar dan ook weer niet.
Mijn oplossing zit in SQL, terwijl de vorige in VB zit. Hangt dus af van uw voorkeur.

good luck.;)
 
Laatst bewerkt:
Beste Ezechiel,

wat bedoel je eigenlijk met "dan verbind je die query met uw combo en hopla!".

Want ook al gebruik ik die sql, dan nog moet je eigenlijk additem gebruiken
om de combo effectief te vullen? Wat in mijn geval nu wel werkt.

Maar ik had ook al een sql in die trant, de twee tabellen die ik gebruik hebben andere
sleutels, dat kan dan niet meer gelinkt worden...

Code:
Set rsnamen = "SELECT * FROM _CTREGIO, _CTRCBEN WHERE _CTREGIO.omschr = _CTRCBEN.kode AND _CTRCBEN.omschr LIKE '" & Me.cboTest & "' ;"

CTRCBEN: kode(sleutel) en omschrijving
CTREGIO: kode(sleutel) en omschrijving

Maar de kode van CTRCBEN is qua waarde gelijk aan die van de omschrijving van
CTREGIO
 
Met een inner join werkt het dus wel:

Set rsnamen = CurrentDb.OpenRecordset("SELECT [_CTRCBEN].OMSCHR AS TEST,
[_CTREGIO].KODE FROM _CTRCBEN INNER JOIN _CTREGIO ON [_CTRCBEN].KODE
= [_CTREGIO].OMSCHR WHERE ((( [_CTRCBEN].OMSCHR)='" & Me.cboTest & "'))")
 
oki :thumb:

Ik denk dat access liever inner joints gebruikt dan X.a = Y.a.
Maar ja..

Met verbinden bedoelde ik eigenlijk het volgende.
In design view klik je op de properties van uw combobox
en dan ga je naar de tab data. Daar kan je ergens (weet niet juist meer, heb
de software hier niet) uw query zetten die de combobox opvult.
Zo heeft iemand het mij toch getoond.

Het belangerijkste is dat het nu werkt :)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan