多选组合框 - 必填项

Posted

技术标签:

【中文标题】多选组合框 - 必填项【英文标题】:Multiple Selection ComboBox - Mandatory Field 【发布时间】:2015-12-14 16:36:26 【问题描述】:

这是我第一次在网站上发帖,尽管我找到了一些对我有帮助的答案。然而,尽管进行了广泛的研究,我还是无法找到这个特定问题的答案。

我有一个包含多个字段的表单,其中一些是强制性的,而另一些则不是

例如,我能够为除此(Field1)之外的所有必填字段开发代码。

不同之处在于 Field1 是一个带有复选框的下拉菜单,其中可以选择多个。

如何为以下代码调整这种类型的字段?

ElseIf Len(Me.Category & "") = 0 Then
Cancel = True
response = MsgBox("You must enter a value in 'Category'.", vbInformation, "Mandatory Field")
Me!Category.SetFocus

Category 是我的其他字段之一,此代码工作正常,但当我更改 Field1 的名称时,代码不起作用。

我希望我尽可能清楚,我非常感谢社区的一些帮助

谢谢,

阿布弗兰

【问题讨论】:

【参考方案1】:

我认为您要做的是将所有选定的项目放入一个数组中,然后确定数组的长度是否> 0。

虽然不完全相同,但我认为这个问题的已接受答案(带有绿色复选标记的答案)可以稍作更改,以提供您想要的:

How do I return multi select listbox values into a sentence using Word VBA?

编辑

您可以删除数组部分并仍然使用代码:

Public Function GetSelectedItems(lBox As MSForms.ListBox) As String

Dim i As Integer
Dim selCount As Integer
    selCount = -1
    '## Iterate over each item in the ListBox control:
    For i = 0 To lBox.ListCount - 1
        '## Check to see if this item is selected:
        If lBox.Selected(i) = True Then
            '## If this item is selected, then add 1 to your selCount counter
            selCount = selCount + 1
        End If
    Next

    If selCount = -1 Then
        '## If no items were selected, return a messagebox saying this is mandatory
        msgbox "You MUST select something from the listbox."
    Else:
        '## Otherwise, don't worry about it
    End If
End Function

【讨论】:

感谢您的快速回复,我查看了链接,似乎有点混乱。我对数组完全不熟悉。 那么您如何处理从列表框中选择的项目?我的意思是,从技术上讲,您可以删除阵列片。整个想法是,如果所选项目的数量大于 1,则不会显示消息框。该代码循环遍历列表框并计算所选项目的数量。这是您需要做的,以确定您是否需要告诉您的用户该列表框是强制性的。 好的,所以我会把这个代码放到一个模块中,然后从表单中调用它,看看它是否大于 0。然后显示消息框。所以我只需将 lbox 作为 MSForms.ListBox 更改为 lbox 作为 field1.ListBox 没有。您将创建一个新模块并将上面的代码粘贴到其中,然后从表单中将其作为函数调用并将列表框名称传递给它。因此,从您的表单中,您可以编写类似 GetSelectedItems(YourListboxName) 的内容,其中“YourListboxName”是您的列表框的名称。 所以我会写 GetSelectedItems(Field1) where ListBox = Field1

以上是关于多选组合框 - 必填项的主要内容,如果未能解决你的问题,请参考以下文章

easyui如何修改指定必填项下拉文本框边框的颜色?

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

是否有任何可用的原生 WPF 多选组合框?

多选组合框和 tpl - 在 Ext JS 中标记选定条目的问题

ExtJS:EditorGrid 中的多选组合

用jquery实现可输入多选下拉组合框