Auf Englisch lesen

Freigeben über


ComboBox-Objekt (Access)

Dieses Objekt entspricht einem Kombinationsfeld-Steuerelement. Das Kombinationsfeld-Steuerelement kombiniert die Features eines Textfelds und eines Listenfelds. Verwenden Sie ein Kombinationsfeld, wenn Sie die Möglichkeit haben möchten, einen Wert einzuben oder einen Wert aus einer vordefinierten Liste auszuwählen.

Hinweise

Control Tool
Kombinationsfeld-Steuerelement Kombinationsfeld-Tool

In der Formularansicht zeigt Microsoft Access die Liste erst an, wenn Sie auf den Pfeil des Kombinationsfelds klicken.

Wenn die Steuerelementassistenten aktiviert sind, bevor Sie das Kombinationsfeld auswählen, können Sie ein Kombinationsfeld mit einem Assistenten erstellen. Um die Steuerelementassistenten zu aktivieren oder deaktivieren, klicken Sie auf das Tool Steuerelementassistenten in der Toolbox.

Die Einstellung der Eigenschaft LimitToList bestimmt, ob Sie Werte eingeben können, die nicht in der Liste vorhanden sind.

Die Liste kann ein- oder mehrspaltig sein, und die Spalten können mit oder ohne Überschriften angezeigt werden.

Beispiel

Das folgende Beispiel zeigt, wie Sie mehrere Kombinationsfeld-Steuerelemente verwenden, um Kriterien für eine Abfrage zur Verfügung zu stellen.

Private Sub cmdSearch_Click()
    Dim db As Database
    Dim qd As QueryDef
    Dim vWhere As Variant
    
    Set db = CurrentDb()
    
    On Error Resume Next
    db.QueryDefs.Delete "Query1"
    On Error GoTo 0
    
    vWhere = Null
    vWhere = vWhere & " AND [PymtTypeID]=" & Me.cboPaymentTypes
    vWhere = vWhere & " AND [RefundTypeID]=" & Me.cboRefundType
    vWhere = vWhere & " AND [RefundCDMID]=" & Me.cboRefundCDM
    vWhere = vWhere & " AND [RefundOptionID]=" & Me.cboRefundOption
    vWhere = vWhere & " AND [RefundCodeID]=" & Me.cboRefundCode
    
    If Nz(vWhere, "") = "" Then
        MsgBox "There are no search criteria selected." & vbCrLf & vbCrLf & _
        "Search Cancelled.", vbInformation, "Search Canceled."
        
    Else
        Set qd = db.CreateQueryDef("Query1", "SELECT * FROM tblRefundData WHERE " & _
        Mid(vWhere, 6))
        
        db.Close
        Set db = Nothing
        
        DoCmd.OpenQuery "Query1", acViewNormal, acReadOnly
    End If
End Sub

Im folgenden Beispiel wird gezeigt, wie die Eigenschaft RowSource eines Kombinationsfelds festgelegt wird, wenn ein Formular geladen wird. Wenn das Formular angezeigt wird, werden die im Feld Abteilungen gespeicherten Elemente des Kombinationsfelds tblDepartment im Kombinationsfeld cboDept angezeigt.

Private Sub Form_Load()
    Me.Caption = "Today is " & Format$(Date, "dddd mmm-d-yyyy")
    Me.RecordSource = "tblDepartments"
    DoCmd.Maximize  
    txtDept.ControlSource = "Department"
    cmdClose.Caption = "&Close"
    cboDept.RowSourceType = "Table/Query"
    cboDept.RowSource = "SELECT Department FROM tblDepartments"
End Sub

Das folgende Beispiel zeigt, wie Sie ein Kombinationsfeld erstellen, das an eine Spalte gebunden ist, während eine andere angezeigt wird. Das Festlegen der ColumnCount-Eigenschaft auf „2“ gibt an, dass das cboDept-Kombinationsfeld die ersten beiden Spalten der Datenquelle anzeigt, die in der RowSource-Eigenschaft angegeben wird. Das Festlegen der BoundColumn-Eigenschaft auf „1“ gibt an, dass der in der ersten Spalte gespeicherte Wert zurückgegeben wird, wenn Sie den Wert des Kombinationsfelds prüfen.

Die ColumnWidths-Eigenschaft gibt die Breite der zwei Spalten an. Durch Festlegen der Breite der ersten Spalte auf 0in. wird die erste Spalte nicht im Kombinationsfeld angezeigt.

Private Sub cboDept_Enter()
    With cboDept
        .RowSource = "SELECT * FROM tblDepartments ORDER BY Department"
        .ColumnCount = 2
        .BoundColumn = 1
        .ColumnWidths = "0in.;1in."
    End With
End Sub

Das folgende Beispiel zeigt, wie Sie einem gebundenen Kombinationsfeld ein Element hinzufügen.

Private Sub cboMainCategory_NotInList(NewData As String, Response As Integer)

    On Error GoTo Error_Handler
    Dim intAnswer As Integer
    intAnswer = MsgBox("""" & NewData & """ is not an approved category. " & vbcrlf _
        & "Do you want to add it now?", vbYesNo + vbQuestion, "Invalid Category")

    Select Case intAnswer
        Case vbYes
            DoCmd.SetWarnings False
            DoCmd.RunSQL "INSERT INTO tlkpCategoryNotInList (Category) " & _ 
                         "Select """ & NewData & """;"
            DoCmd.SetWarnings True
            Response = acDataErrAdded
        Case vbNo
            MsgBox "Please select an item from the list.", _
                vbExclamation + vbOKOnly, "Invalid Entry"
            Response = acDataErrContinue

    End Select

    Exit_Procedure:
        DoCmd.SetWarnings True
        Exit Sub

    Error_Handler:
        MsgBox Err.Number & ", " & Err.Description
        Resume Exit_Procedure
        Resume

End Sub

Ereignisse

Methoden

Eigenschaften

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.