Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 使用VBA仅编辑Access窗体中的筛选条目_Ms Access_Filter_Vba - Fatal编程技术网

Ms access 使用VBA仅编辑Access窗体中的筛选条目

Ms access 使用VBA仅编辑Access窗体中的筛选条目,ms-access,filter,vba,Ms Access,Filter,Vba,我一直在添加Access联系人模板,以创建一个可以管理联系人的数据库,打开的主窗体有一个填充了所有联系人信息的数据表。我将复选框功能添加到每个项目。如果选中此框,则可以对所有复选框项运行某些操作。我创建了一个宏,可以一次选择/取消选择所有联系人 但我试图做的是启用它,以便当您单击按钮时,它仅选择当前显示的项目。因此,如果我在表单中应用了一个过滤器,比如说邮政编码,我可以点击按钮将“Action”字段更改为“Yes”,这样我就可以在其上运行操作(批量发送电子邮件、将所有内容导出到outlook、创

我一直在添加Access联系人模板,以创建一个可以管理联系人的数据库,打开的主窗体有一个填充了所有联系人信息的数据表。我将复选框功能添加到每个项目。如果选中此框,则可以对所有复选框项运行某些操作。我创建了一个宏,可以一次选择/取消选择所有联系人

但我试图做的是启用它,以便当您单击按钮时,它仅选择当前显示的项目。因此,如果我在表单中应用了一个过滤器,比如说邮政编码,我可以点击按钮将“Action”字段更改为“Yes”,这样我就可以在其上运行操作(批量发送电子邮件、将所有内容导出到outlook、创建地址标签、删除等)

在Excel中,这可以用.visible类型的东西来完成,但似乎没有像access这样的函数。我已经通过创建数据的
记录集
完成了所有其他方法,但是这个
记录集
将没有相同的过滤器


如果我可以提供任何其他信息,请告诉我。

要设置复选框的值,可以使用0或-1-在
vba
中,1表示选中,0表示未选中

Me.checkboxname.Value = -1
现在,您可以选择表单中的所有复选框,从按钮中为onclick事件创建一个函数或子函数,并添加应选中所有复选框的代码:

'code not tested but should work fine
Dim ctrl As Control '//, chbox As CheckBox

For Each ctrl In DAO.Controls 
    If Typeof ctrl Is MSForms.CheckBox Then 
         '// Set chbox = ctrl
           Me.ctrl.value = -1  
        End If 
    End If 
Next ctrl 

在DAO.Controls的控件部分中找不到方法或数据成员的错误。这是否仅会选择显示的对象?我希望能够改变过滤器,并迅速选择所有的框。最后一个问题,我有其他复选框作为联系表的一部分,所以我只想编辑“Action”字段下的复选框,而不是其他字段。