Combo-box multi-selection 在 Access 2016 的文本框中显示所选项目
Combo-box multi-selection to display the selected Items in a Text box in Access 2016
我在允许多项选择的表单上有一个组合框。它显示需要分配给用户的 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
这就是您要查找的内容:
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
您可以自行编辑您希望在结果中显示的列。
已回答未处理的异常
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 小时前回答
未处理的异常
老实说,即使在 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
我在允许多项选择的表单上有一个组合框。它显示需要分配给用户的 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
这就是您要查找的内容:
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
您可以自行编辑您希望在结果中显示的列。
已回答未处理的异常
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 小时前回答
未处理的异常
老实说,即使在 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