Objet ComboBox (Access)

Cet objet correspond à un contrôle de zone de liste modifiable. Le contrôle Zone de liste modifiable combine les caractéristiques d'une zone de texte et d'une zone de liste. Vous pouvez utiliser une zone de liste modifiable lorsque vous voulez avoir la possibilité soit de saisir une valeur soit d'en sélectionner une dans une liste prédéfinie.

Remarques

Contrôle Outil
Contrôle zone de liste déroulante Outil Zone de liste déroulante

En mode Formulaire, Microsoft Access n'affiche la liste que lorsque vous cliquez sur la flèche de la zone de liste modifiable.

Si vous avez activé les Assistants Contrôle avant de sélectionner l'outil Zone de liste modifiable, vous pourrez être aidé d'un Assistant pour créer la zone de liste modifiable. Pour activer et désactiver les Assistants Contrôle, cliquez sur l’outil Assistants Contrôle dans la boîte d’outils.

Le paramétrage de la propriété LimitToList détermine si vous pouvez entrer des valeurs ne se trouvant pas dans la liste.

La liste peut comprendre une ou plusieurs colonnes, accompagnées ou dépourvues d'en-têtes.

Exemple

L’exemple suivant montre comment utiliser plusieurs contrôles ComboBox afin de fournir des critères pour une requête.

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

L'exemple suivant montre comment définir la propriété RowSource d'une zone de liste modifiable lors du chargement d'un formulaire. Lorsque le formulaire s'affiche, les éléments stockés dans le champ Départements de la liste modifiable tblDepartment apparaissent dans la liste modifiable cboDept.

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

L’exemple suivant montre comment créer une zone de liste modifiable liée à une colonne tout en affichant une autre. Si vous choisissez la valeur 2 pour la propriété ColumnCount, cela indique que la zone de liste modifiable cboDept affichera les deux premières colonnes de la source de données spécifiée par la propriétéRowSource. Si vous choisissez la valeur 1 pour la propriété BoundColumn, cela indique que la valeur stockée dans la première colonne est renvoyée quand vous inspectez la valeur de la zone de liste modifiable.

La propriété ColumnWidths indique la largeur des deux colonnes. En définissant la largeur de la première colonne sur 0in., la première colonne n'est pas affichée dans la zone de liste modifiable.

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

L'exemple suivant montre comment ajouter un élément à une zone de liste modifiable liée.

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

Événements

Méthodes

Propriétés

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.