多选列表框问题

时间:2015-05-20 18:50:35

标签: vba ms-access listbox access-vba ms-access-2010

我在将列表框放入多选列表框时遇到问题。我知道制作列表框多选的代码是:

[forms]![formname]![listboxname].multiselect=2

然而,当我在Private Sub Form_Load()中运行它时,我得到运行时错误' 2448'您无法为此对象分配值。

我想我不明白如何制作列表框多选,但我很确定我理解如何在VBA中使用多选列表框。

有关如何使用上述代码将列表框实际更改为多选的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:6)

来自属性MultiSelect的Microsoft Office帮助:

  

此属性只能在表单设计视图中设置。

在表单设计中设置此属性,不要尝试在代码中更改它。

使用MultiSelect的一些示例:

' Retrieve all selected values
Public Function ListBoxGetMultiSelect(ByVal rListBox As Access.ListBox) As String
    Dim v As Variant
    Dim vList As Variant
    vList = ""
    With rListBox
        For Each v In .ItemsSelected
            vList = vList & .Column(0, v) & vbCrLf
        Next
    End With
    ListBoxGetMultiSelect = vList
End Function

' clear all selected values
Public Sub ListBoxClearSelection(ByVal rListBox As Access.ListBox)
    Dim v As Variant
    With rListBox
        For Each v In .ItemsSelected
            .Selected(v) = False
        Next
        .Value = Null
    End With
End Sub

答案 1 :(得分:0)

我找到了一种通过Vba代码设置Multiselect属性的方法:

DoCmd.SetWarnings = False
    DoCmd.OpenForm myformname, acDesign
    Forms(myformname).SetFocus
    Forms(myformname).Controls(List3).MultiSelect = 0
    DoCmd.Close acForm, myformname
DoCmd.SetWarnings = True