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

Posted

技术标签:

【中文标题】组合框多选以在 Access 2016 中的文本框中显示所选项目【英文标题】:Combo-box multi-selection to display the selected Items in a Text box in Access 2016 【发布时间】:2019-12-05 12:37:38 【问题描述】:

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

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

这是我到目前为止所获得的任何帮助,非常感谢。 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

【问题讨论】:

请参阅How to create a Minimal, Complete, and Verifiable example,别忘了阅读Why is “Can someone help me?” not an actual question? 和I downvoted because no attempt was made。还可以查看tour,以及"help center". 的更多信息 您的意思是多选组合框还是列表框? 这是一个组合框,是的,它允许我选择多个项目,我将努力为这篇文章获取屏幕截图。 我附上了一些图片来帮助。如果还有什么我可以提供的,请告诉我。非常感谢 【参考方案1】:

这就是你要找的东西:

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

您可以自行编辑要在结果中出现的列。

【讨论】:

@BrianBlanton:不客气。如果您发现它解决了您的问题,请考虑accepting the answer。【参考方案2】:

老实说,即使在 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

【讨论】:

【参考方案3】:

由未处理的异常回答

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小时前回答

未处理的异常

【讨论】:

以上是关于组合框多选以在 Access 2016 中的文本框中显示所选项目的主要内容,如果未能解决你的问题,请参考以下文章

Excel怎么下来框多选

jquery实现下拉框多选

jquery实现下拉框多选

extjs 下拉框多选

jquery.multiselect.js 实现下拉框多选怎么设置默认全部选中下拉框的值,

bootstrap-select实现下拉框多选效果