ComboBox 物件 (Access)

此物件對應到下拉式方塊控制項。 下拉式方塊控制項結合了文字方塊和清單方塊的功能。 當您想要用選項從事先定義的清單來輸入值或選取值時,請使用下拉式方塊。

備註

控制項 工具
下拉式方塊控制項 下拉式方塊工具

直到您在表單檢視按一下下拉式方塊的箭頭,Microsoft Access 才會顯示清單。

如果在您選取下拉式方塊工具之前,您有開啟控制項精靈,您可以使用精靈來建立下拉式方塊。 若要開啟或關閉控制項精靈,請在工具箱中按一下 [控制項精靈] 工具。

LimitToList 屬性的設定值決定您是否可以輸入不在清單中的值。

清單可以是單欄或是多欄,且可以顯示該欄的標題或沒有標題。

範例

下列範例顯示如何使用多個 下拉式方塊 控制項,以提供查詢的準則。

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

下列範例會示範如何將下拉式方塊的 RowSource 屬性設定載入表單時。 表單顯示時, cboDept 下拉式方塊中顯示儲存在 tblDepartment 下拉式方塊的 [ 部門 ] 欄位中的項目。

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

下列範例顯示如何在顯示另一個下拉式方塊的同時,建立系結至一欄的下拉式方塊。 設定 ColumnCount 的屬性為 2,即表示 cboDept 下拉式方塊會顯示由 RowSource 屬性所指定資料來源的前兩欄。 設定 BoundColumn 的屬性為 1 ,即表示當您檢查下拉式方塊的值時,會將儲存於第一欄的值傳回。

ColumnWidths 屬性指定這兩欄的寬度。 藉由將第一欄寬度設定為 0 英吋,第一欄便不會顯示在下拉式方塊。

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

下列範例會顯示如何將項目加入到繫結的下拉式方塊中。

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

事件

方法

屬性

請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應