我在数据表视图模式下有一个子窗体,它缺少通常带有复选框的过滤器选项。
缺少
通过qick过滤器和过滤器的复选框我的意思是:
有人能告诉我怎么能得到回来的?
答案 0 :(得分:10)
今天我偶然发现了一个可能的答案。试试这个选项
File > Options... > Filter lookup options for <your Db name> Database
将选项Don't display lists when more than this number of records is read:
从1000(默认值)更改为更符合您需求的更大数字。
全部。
答案 1 :(得分:2)
我确实认为这是由大量非重复条目引起的。换句话说,它发生的原因是您有许多条目无法从复选框过滤器中受益。他们留下“文本过滤器&gt;”所以你可以搜索,但忽略了复选框,因为它只是一个列表太长。我不知道有哪种方法可以改变这种行为,因为它作为一种非自定义的内置在Access中。
底线:复选框对话的选项太多,无法更改。
答案 2 :(得分:2)
如果您要解决最初列出的问题,以上答案都不正确。在我自己的数据库中玩弄了这个问题后,我发现Access不再支持带链接字段的交叉引用查询(例如,使用一个带有通用名称[text]的下拉列表链接到主表中的字段使用数字来减少记录/数据库大小)。我发现通过将索引字段的大小从0调整到.0202,它将允许过滤器机制再次工作,但会自动列出字段中的数字而不是相关的公共名称。似乎解决此问题的唯一方法是将关系链接从数字更改为文本,并使用通用名称作为实际条目(我认为在纪念碑上有错误的更改)。希望他们能解决它。与此同时,我会寻找更好的答案。如果我找到一个,我会在这里发布。 -DFoxII
答案 3 :(得分:1)
表单的数据源查询有一个过滤器参数集,它引起了递归过滤。当我删除该过滤器(因为它没用)时,它运行良好。 这就像是一个产生这个问题的逻辑错误。
答案 4 :(得分:1)
这是一个旧帖子;但是,列出的答案并不能解决我的特定问题。我也没有使过滤器列表出现在子窗体上。敲了敲我的脑袋后,我发现我的主表单的“允许过滤器”设置为“否”。即使所有子表单都启用了“允许过滤器”,它似乎继承了主表单设置。也许这会帮助下一个有类似问题的人。
答案 5 :(得分:1)
这是一个有很多答案的老问题。这些都不适合我使用Access2016。只有在将表格的数据源从SQL语句更改为Access查询的简单名称后,它才起作用,并且重新出现了快速筛选器。
答案 6 :(得分:0)
列上的数据类型看起来是number
,在这种情况下它根本没有文本过滤器。请注意,您的过滤选项是“数字过滤器”而不是“文本过滤器”
答案 7 :(得分:0)
我解决了类似的问题 - 快速过滤器在Access 2013中拆分表单的数据表部分中不可用。快捷菜单的表单属性设置已设置为否。我将其更改为是,瞧,快速过滤器变得可用。
答案 8 :(得分:0)
只需将您的数据类型更改为短文本即可。
答案 9 :(得分:0)
确保不要使用“NO”作为字段名称。我有一个名为NO的字段,它导致过滤器消失。它似乎是MS访问的无证“功能”。
答案 10 :(得分:0)
在这里,我找到了结果。 首先,我要感谢这个答案,他给了我火花。
&#34;表单的数据源查询有一个过滤器参数集,它引起了递归过滤。当我删除该过滤器(因为它没用)时,它运行良好。这就像是一个产生这个问题的逻辑错误。&#34;
我使用两个代码来显示解决方案,实际上它是由Access自己的原因造成的。
Code1:
Me.RecordSource = "SELECT * FROM CAPData ORDER BY [DAILY_CLIENT],[CLIENT_NAME],[ASSET_NAME]"
在这种情况下,有时它不会导致自动过滤。
代码2:
Me.RecordSource = "SELECT * FROM CAPData Where Not IsNull(ID) ORDER BY [DAILY_CLIENT],[CLIENT_NAME],[ASSET_NAME]"
这样就解决了问题。
原因: 在记录源SQL中添加一些条件时,Access将设置自动筛选。 如果您还没有设置,当记录大于某个数字时,自动过滤器就不会出现。但是当您在记录源SQL中添加where条件时,您可以找到自动过滤器。 已经测试了20000多条记录。
第一次写回答,好激动。
答案 11 :(得分:0)
抱歉,我知道这是一个老话题。但我遇到了同样的问题,经过尝试不同的方式(包括这里提到的方法),我想我终于得到了它的工作。所以我在这里发布我的解决方案,以防任何遇到同样问题的人都有帮助。
首先,确保你按照布拉德在答案中所说的那样更改选项。 我有一个包含2列,ID和CustomerName的组合框。在开始时,此组合框的行源是: SELECT ID AS CustomerID,CustomerName FROM tblCustomers ORDER BY CustomerName; 过滤器的复选框未显示。
我发现此查询对于组合框行源有2个问题。 1)您不能为ID列使用别名。 2)您无法对第二列(此处为CustomerName)进行排序。
所以在我将查询更改为: SELECT ID,CustomerName FROM tblCustomers; 复选框回来了! (你可以在第一列进行排序)
我希望这有帮助。
答案 12 :(得分:0)
快速过滤器未显示的原因有多种,正如已经证明的那样。我遇到的三个主要原因:
要解决此问题,您需要将 SQL 动态推送到 Access 查询对象中,然后将表单的记录源设置为查询 - 问题已解决。
我使用我编写的名为 CreateQuery 的模块来执行此操作,并像这样调用它:
例如Form1.recordsource = CreateQuery("SELECT * from Table", "qrySource1") 使用下面的子:
PUBLIC SUB CreateQuery(SQL as String, qryName as String)
Dim qDef As DAO.QueryDef
With CurrentDb
For each qDef in .QueryDefs
If qDef.Name = qryName Then
.QueryDefs.Delete (qryName)
Exit For
End IF
Next qDef
set qDef = .createQueryDef(qryName, SQL)
END WITH
set qDef = nothing
END SUB
下一个真的很狡猾 - 检查以确保源表的字段不是长文本。 Access 不允许在任何长文本字段上使用“快速过滤器”列。
确保您没有禁用表单的快捷菜单选项,该选项位于表单属性的“其他”选项卡中。
答案 13 :(得分:0)
我遇到了一个问题,即字段不是“可排序的”,即右键单击数据表视图中的列时未显示 A-Z 选项。我从设计视图“控制源”中删除了该字段,然后重新选择了它,然后可以进行排序。
答案 14 :(得分:-1)
我发现如果表单的记录源是包含sort子句的SQL语句,则不会出现快速过滤器。
解决方案:要么删除sort子句(如果您希望对数据进行排序,则不是很有用),或者将包含排序的SQL语句保存为查询,然后将表单的记录源更改为已保存的查询。随后可以使用Voila Quick过滤器。
关心彼得。