Mehrspaltiges ungebundenes Kombinationsfeld füllen?

12/10/2007 - 09:00 von Thomas Gehrmann | Report spam
Hallo NG,
von VBA unter Excel kenne ich es so, dass ich eine mehrspaltige ComboBox
z.B. so füllen kann:

J = 0
For I = 1 To 10
ComboBox1.AddItem
ComboBox1.Column(0, J) = I
ComboBox1.Column(1, J) = "Wert: " & I
J = J + 1
Next I

Nun bin ich gerade dabei auf Access umzusatteln und brauche dort eine
vergleichbare Möglichkeit. Das heißt, ich habe in einem Formular ein
ungebundenes dreispaltiges Kombinationsfeld, welches ich per Code befüllen
möchte. Bei 1 Spalte ist das kein Problem (RowSource), aber ich habe bisher
leider keine Möglichkeit gefunden, die einzelnen Spalten gesondert zu
befüllen. Natürlich könnte ich den Source-String so schreiben, dass die
Werte in die richtigen Spalten eingelesen werden. Mich interessiert aber, ob
es eine Möglichkeit gibt, die Spalten gesondert anzusprechen.

Vielen Dank
Thomas
 

Lesen sie die antworten

#1 Jens Schilling
12/10/2007 - 13:26 | Warnen spam
Hallo, Thomas

Thomas Gehrmann wrote:
Hallo NG,
von VBA unter Excel kenne ich es so, dass ich eine mehrspaltige
ComboBox z.B. so füllen kann:

J = 0
For I = 1 To 10
ComboBox1.AddItem
ComboBox1.Column(0, J) = I
ComboBox1.Column(1, J) = "Wert: " & I
J = J + 1
Next I

Nun bin ich gerade dabei auf Access umzusatteln und brauche dort eine
vergleichbare Möglichkeit. Das heißt, ich habe in einem Formular ein
ungebundenes dreispaltiges Kombinationsfeld, welches ich per Code
befüllen möchte. Bei 1 Spalte ist das kein Problem (RowSource), aber
ich habe bisher leider keine Möglichkeit gefunden, die einzelnen
Spalten gesondert zu befüllen. Natürlich könnte ich den Source-String
so schreiben, dass die Werte in die richtigen Spalten eingelesen
werden. Mich interessiert aber, ob es eine Möglichkeit gibt, die
Spalten gesondert anzusprechen.



AddItem erwartet einen String für die Werte, und einen (optionalen)
Indexwert, an dem eingefügt werden soll.
Die nachfolgende Sub schreibt nummeriert ( beginnend bei 0 ) das Alphabet in
Gross- und Kleinbuchstaben in ein Kombinationsfeld.
Das Setzen von RowSourceType und ColumnCount soll nur sicherstellen, dass
alles passt, dass kannst Du natürlich auch in den Eigenschaften der ComBox
einstellen.

Sub FillCombo()
Dim i As Long
Dim j As Long
Dim strItem As String

'Kombi auf Wertliste einstellen
Me.MeinKombo.RowSourceType = "Value List"

'Auf drei Spalten einstellen
Me.MeinKombo.ColumnCount = 3

'Löschen
Me.MeinKombo.RowSource = ""

j = 0

'Das Alphabet einfügen - Gross- und Kleinbuchstaben
For i = 65 To 90

strItem = j & ";" & Chr(i) & ";" & Chr(i + 32) & ";"

Me.MeinKombo.AddItem strItem, (j)
j = j + 1

Next i

End Sub

Gruss
Jens
______________________________
FAQ: http://www.donkarl.com

Ähnliche fragen