组合框多项选择以在Access 2016的文本框中显示所选项目

时间:2019-12-05 12:37:38

标签: ms-access combobox textbox

我在窗体上有一个组合框,该框允许选择多个项目。它显示需要分配给用户的200多个不同角色。一个用户可以具有多个角色。我想在一个未绑定的文本框中显示那些选定的项目。

我试图弄清楚如何编写VBA代码来捕获所有选择。我做了一个简单的IF语句,如果选择了一项,它就可以工作。但是,当选择了多个项目时,“文本”框中的显示为空。

到目前为止,我能提供的所有帮助非常感谢。 cboRequestedRoles是我的组合框的名称,txt_SelectedRoles是我的文本框的名称。我正在Windows 10平台上使用MS Access DB 2016。

 If Not IsNull(Me.cboRequestedRoles) Then
     Me.txt_SelectedRoles = Me.cboRequestedRoles.Column(2)
 Else
     Me.txt_SelectedRoles.Value = ""
 End If

Disgn View of CBOBox Form View of CBOBox CBOBox Open CBOBox with multiple selections

3 个答案:

答案 0 :(得分:1)

老实说,即使在 2016 年,ComboBox 也无法正常工作。我花了一些时间才弄明白,唯一的方法就是这样做。 itemsSelection 不会声明那里什么都没有,并且 selection.count 等于 0。我不知道它有什么问题。因此,我将该值用作编码中的数组,然后将其分解为与结果相等的每个数组。 vbNewLine 只在分隔字符串时使用,为什么要把它放在最后。

Dim result As String
result = ""
With Me.cboRequestedRoles

    Dim index As Long

    For index = 0 To ubound(.value)

        if index > 0 then
             result = result & vbNewLine
        endif

        result = result & .value(index)
    Next index
End With

Me.txt_SelectedRoles.Value = result

答案 1 :(得分:0)

这是您要寻找的:

Dim result As String

With Me.cboRequestedRoles
    Dim index As Long
    For index = 0 To .ItemsSelected.Count - 1
        result = result & _
                 .Column(1, index) & _
                 ": " & _
                 .Column(2, index) & _
                 vbNewLine
    Next index
End With

Me.txt_SelectedRoles.Value = result

您可以自己编辑它,以了解要包含在结果中的列。

答案 2 :(得分:0)

未处理的异常解答

Dim result As String
With Me.cboRequestedRoles
    Dim index As Long
    For index = 0 To .ItemsSelected.Count - 1
        result = result & _
                 .Column(1, index) & _
                 ": " & _
                 .Column(2, index) & _
                 vbNewLine
    Next index
End With

Me.txt_SelectedRoles.Value = result

这是由 6小时前回答

未处理的异常