Wie lege ich fest was im Kombifeld angezeigt wird?!

Blaubmania

Erfahrenes Mitglied
Hiho,

meinem Titel gibt es nicht viel hinzuzufügen hab paar Kombinationsfelder wenn ich ne Auswahl treffe wird in den jeweiligen Feldern immer die 1. Spalte als Wert angezeigt von der Auswahl. Wie bzw. wo kann ich einstellen was von der Auswahl im Kombinationsfeld angezeigt werden soll?
 
Verstehe zwar nicht so ganz was du möchtest, aber ich versuchs mal.

Also ein KombinationsFeld wird genau wie ein Listenfeld & Textfeld benutzt, da es ja auch nur eine Kombination davon ist.

Über die style-Eigenschaft(3 Stilarten: 0-2) kann festgelegt werden, ob z.B das Listenfeld immer geöffnet ist oder nicht, oder ob eine Eingabe möglich ist.

Und mit einem Listenfeld kannst du ja denke ich umgehen oder ?


Denke du willst die auswahl direkt selektieren oder ?

combo1.ListIndex = 0

so setzte die auswahl aufs 1. Feld
 
Hm neee das war jetzt nicht ganz so das was ich meinte ich versuchs nochmal einfacher zu erklären ich habe z.B. 3 Einträge mit 4 Spalten ID, Name, Vorname, Geschlecht

Das Kombifeld wird von mir selbst gefüllt....

Wenn ich jetzt Eintrag Nr. 2 wähle ist es z.Z. so das die ID dann im Kombinationsfeld angezeigt wird, ich möchte aber das er mir den Namen dort anzeigt, wie geht das?

Sry für meine 1. etwas umständliche erklärung ;)
 
ne sry, ich muss heute wohl echt auffem Schlauch stehn, versteh es noch immer net ganz xD ;)
Mit Eintrag hoffe ich meinst du nen Textfeld, wie cih mir das jedenfalls vorstelle ist, das du bei einem on_change-ereignis
Das Listenfeld auf einen bestimmten Wert im Kombifeld stellst,

d.h

Code:
Option Explicit

Private Sub Text1_Change()
Combo1.ListIndex = 1
End Sub
 
*trommelwirbel* ....
....
Nein leider war es das nicht ;)

Also ich versuchs nochmal *g* Also ich ahbe ein Kombinationsfeld im Formular dann klick ich drauf und dann kommt ja die Liste mit mehreren Zeilen wo ich dann eine auswählen kann. Wenn ich dann auf eine Zeile klicke wird diese ja ausgewählt die Liste verschwindet und im Kombinationsfeld steht ja dann ein Wert aus meiner Zeile das ist zur Zeit die ID weil das standardmäßig so eingestellt ist ich möchte aber das er mir den Namen anzeigt von der Zeile die ich ausgewählt habe im Kombinationsfeld. Ich hab dir mal nen Screenie anghangen ^^
 

Anhänge

  • 25865attachment.jpg
    25865attachment.jpg
    10,9 KB · Aufrufe: 13
Hi,

dafür gibt es die Itemdata Eigenschaft.
Woher kommen die Daten? Werden die im Programmcode eingepflegt oder extern?

So fülle ich eine ComboBox mit Daten aus einem Recordset:
Code:
' fills combobox with specified Recordset
Public Function FillComboBox(ByRef Rs As ADODB.Recordset, _
                             ByRef ctl As ComboBox, _
                             ByVal sFieldValue As String, _
                             ByVal sFieldID As String _
) As Boolean
    
    Dim sTmp    As String
    With ctl
        Call .Clear
        If (Rs.RecordCount = 0) Then
            FillComboBox = False
            Exit Function
        End If
        
        Call Rs.MoveFirst
        Do While (Not (Rs.EOF))
            sTmp = GetText(Rs.Fields(sFieldValue).Value)
            Call .AddItem(sTmp)
            .ItemData(.NewIndex) = Rs.Fields(sFieldID).Value
            Call Rs.MoveNext
        Loop
    End With
    Call Rs.MoveFirst
End Function

' reads text from rs.field,
' checks for NULL value and
' and returns string
Public Function GetText(ByRef vDBText As Variant _
) As String

    If (IsNull(vDBText)) Then
        GetText = vbNullString
    Else
        GetText = CStr(vDBText)
    End If
End Function

So die Auswahl auslesen:
Code:
' gets ComboBox Listindex
Public Function GetCboIndex(ByRef ctl As ComboBox _
) As Long
On Error Resume Next
    GetCboIndex = ctl.ItemData(ctl.ListIndex)
On Error GoTo 0
End Function

Wenn Du Dir nun die Funktion FillComboBox(...) anschaust, dann siehst Du, wie die ItemData eigenschaft verwendet wird.
 
Zurück