Meerdere kolommen in combobox

Status
Niet open voor verdere reacties.

wpepping

Nieuwe gebruiker
Lid geworden
13 mrt 2009
Berichten
4
Vanuit het tekenprogramma Inventor (beschikt over VBA 6.3) haal ik data uit een access database.
Nu heb ik 1 tabel met projecten en 1 met de status van de projecten. De tabel "Status" heeft 2 kolommen: kolom 1 bevat een nummer en kolom 2 de omschrijving. Nu heb ik een combobox gemaakt waarin ik de status kan veranderen en wegschrijven naar de tabel "Projecten". De waardes haalt de combobox uit de tabel "Status".
Wat me niet lukt is om in de combobox 2 kolommen weer te geven met het nummer en de omschrijving. Ik wil dan de kolombreedte van het nummer op "0" zetten zodat ik alleen de omschrijving zie. Het nummer wordt dan uiteindelijk weggeschreven naar de tabel "Projecten".
BoundColumn staat op 1 en ColumnCount op 2.

Mijn vraag is nu hoe ik meerder kolommen weer kan geven in een combobox.

Dit is de code die ik gebruik om de combobox te vullen:

---------------------------------------
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim strSQLprojecten As String

Set dbs = OpenDatabase(Settings.TBox_database.Value)

strSQLprojecten = "Select Nummer, Omschrijving FROM Status;"
Debug.Print strSQLprojecten
Set rst = dbs.OpenRecordset(strSQLprojecten)
Do While Not rst.EOF
CBox_status.AddItem rst("Nummer")
rst.MoveNext
Loop
----------------------------------------
 
Ik heb nu inderdaad 2 kolommen, maar hoe krijg ik de 2e kolom nu gevuld? "Nummer" staat in de eerste kolom. Dit heb ik ook aangegeven bij AddItem.
 
Hallo,

Na nogmaals het internet afgestruind te hebben krijg ik het idee dat het niet kan wat ik wil.
Ik heb zelf een oplossing bedacht die niet zo elegant is, maar wel werkt. Misschien heeft iemand er nog iets aan.
Het doel was om kolom 2 (omschrijving uit tabel "status") zichtbaar te maken in de combobox en vervolgens het nummer in (onzichtbare) kolom 1 weg te schrijven naar de tabel "projecten".
Ik heb een teksvak gemaakt die het nummer uit tabel "status" weergeeft zodra de waarde in de combobox wijzigt. Vervolgens wordt de waarde uit dit tekstvak weggeschreven. Dit tekstvak heb ik onzichtbaar gezet en klaar.
 
Je bent er al, maar volledigheidshalve zou het volgens mij zo mogelijk moeten zijn:

Code:
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim strSQLprojecten As String

Set dbs = OpenDatabase(Settings.TBox_database.Value)

strSQLprojecten = "Select Nummer, Omschrijving FROM Status;"
Debug.Print strSQLprojecten
Set rst = dbs.OpenRecordset(strSQLprojecten)
Do While Not rst.EOF
CBox_status.AddItem rst("Nummer")
CBox_status.Column(1, CBox_status.ListCount-1) =  rst("Omschrijving ")
rst.MoveNext
Loop
 
Dan denk ik eerder aan:

Code:
Dim rst As DAO.recordset
Set rst = OpenDatabase(Settings.TBox_database.Value).OpenRecordset("Select Nummer, Omschrijving FROM Status;")

Do While Not rst.EOF
  with CBox_status
    .AddItem rst("Nummer")
    .[COLOR="Red"]List[/COLOR]( .ListCount-1,1) =  rst("Omschrijving ")
  end with
  rst.MoveNext
Loop
 
Hallo,

Beide codes werken goed nadat ik de kolom van 1 in 2 heb veranderd.
Code:
.List( .ListCount-1,2) =  rst("Omschrijving")

Kunnen jullie mij vertellen waarom zowel list of column te gebruiken is? Wat is het verschil?
 
Ik zou 'n Column gebruiken, omdat dat het property van een combobox is. Ik vermoed dat het onderliggende object dat de kolommen vult dan weer een gelinkte lijst is en dat je vandaar beide kunt gebruiken.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan