Ms access MS Access多选组合框全选/无

Ms access MS Access多选组合框全选/无,ms-access,vba,Ms Access,Vba,我在链接到SharePoint字段的表单上有一个组合框,该组合框可以正确填充,但是我在尝试添加VBA代码以选择所有选项或取消选择所有选项时遇到困难 使用标准组合框,您可以使用: cmbBox1.value = "" 这将重置字段。对于启用了multi-select的列表框,也可以执行相同的操作,但是对于由于查找而具有multi-select的组合框,这会抛出一个错误:“此控件是只读的,无法修改” 我做了一些搜索,但是除了使用列表框之外,似乎没有人能找到真正的答案,这不是一个解决方案 是否有人使

我在链接到SharePoint字段的表单上有一个组合框,该组合框可以正确填充,但是我在尝试添加VBA代码以选择所有选项或取消选择所有选项时遇到困难

使用标准组合框,您可以使用:

cmbBox1.value = ""
这将重置字段。对于启用了multi-select的列表框,也可以执行相同的操作,但是对于由于查找而具有multi-select的组合框,这会抛出一个错误:“此控件是只读的,无法修改”

我做了一些搜索,但是除了使用列表框之外,似乎没有人能找到真正的答案,这不是一个解决方案

是否有人使用过其中一个字段,并且知道如何使用VBA选择所有选项

下面是一个描述此类字段的链接,但没有讨论如何使用VBA-与之交互

更新:


我描述的字段类型有些混乱,因此我添加了一些屏幕截图,以显示允许multiselect的组合框、允许多个选项的列表框和添加了选项的组合框之间的差异

首先是我描述的领域:

第二个列表框:

最后是组合框:

这些图像显示了所描述的问题。如您所见,需要选中或取消选中多个复选框。通常我不会创建这样的字段,但如上所述,Access是如何解释SharePoint中允许多个选择的组合框的。


我相信这涵盖了你的问题

经过大量的搜索和反复尝试,我找到了答案

要取消选中所有复选框,需要

cmbBox1.Value = Array()
因此,根据这些信息,我认为要选择项目,它们必须在一个数组中。创建一个包含组合框中所有项目的数组,然后将组合框设置为该数组将选择所有项目

我使用一个基本循环来设置数组的每个元素

Dim SelVals(), i
ReDim SelVals(0 to cmbBox1.ListCount - 1)
For i = 0 to cmbBox1.ListCount - 1
     SelVals(i) = cmbBox1.Column(1,i)
Next i
cmbBox1.Value = SelVals

显然,您不仅限于使用整个内容,还可以指定任何数组,这些数组将是选定的值。

实际上不是。这个链接是关于为(ALL)的组合框源添加一个选项。我指的是一个具有多值功能的组合框,您可以使用复选框选择值。这是一个关于如何创建这样一个字段的链接--由于指向SharePoint的链接,我已经有了这个字段。我只需要知道如何在VBA中选择或取消选择所有复选框。因此@AxGryndr,你上面评论中的链接怎么没有回答你的问题?因为Alan发布的链接只是在下拉列表中添加了一个(全部)选项。我的领域不是这样的。我使用每个项目旁边的复选框选择组合框中的选项。我需要选中所有复选框或取消选中所有复选框。原因是我的用户可能需要除1之外的所有选项,因此有60多个选项时,选择全部并让他们取消选择他们不需要的选项会更快。可能的重复正如我在下面解释的,这不是选择全部的重复。原因是,通过更改向组合框提供信息的查询以包含新选项,可以添加“全选”选项。我描述的组合框具有通过单击每个项目旁边的复选框来选择多个项目的功能。两种截然不同的功能。因此,问题是如何选中或取消选中所有框。我的答案如下。抱歉,如果我意识到一次接近投票就足够了,我就不会投票了。我在问题中添加了一些屏幕截图,希望能为其他寻求此解决方案的人澄清这个问题。你不是第一个误解的人,所以我希望这会有所帮助。你能分享first Select Options的脚本吗?嗨,你的组合框中已经有了吗?或者你是通过vba添加的?为了创建combobox示例,我用UNION修改了查询以添加记录。可以使用VBA更改SQL,但必须使用.requery()方法更新值。