7

我在数据表视图模式下有一个子表单,它缺少通常带有复选框的过滤器选项。

失踪

通过快速过滤器和过滤器复选框,我的意思是:

有人可以告诉我如何找回它吗?

4

16 回答 16

12

今天我偶然发现了一个可能的答案。试试这个选项:

Menu FileOptions...Filter lookup options for <your DB name> Database

更改选项在读取的记录数超过此数量时不显示列表:从 1000(默认值)到适合您需要的更大数字。

  1. 转到“选项”
  2. 查找“当前数据库”
  3. 向下滚动,直到找到“{....您的文件名...}的过滤查找选项。它将显示列表,如果您的数据输入超过 1,000,它不允许您进行任何过滤。您只需选择ODBC 字段并根据需要设置条目,例如 2,000。

就这样。

于 2012-09-04T20:19:36.450 回答
2

表单的数据源查询具有导致递归过滤的过滤器参数集。当我删除那个过滤器(因为它没有用)时,它运行良好。这就像一个逻辑错误导致了这个问题。

于 2012-08-22T09:38:03.163 回答
2

如果您要解决最初列出的问题,上述答案都不正确。在我自己的数据库中玩弄过这个问题后,我发现 Access 似乎不再支持带有链接字段的交叉引用查询(例如,使用具有通用名称 [文本] 的下拉列表链接到主表中的字段使用数字来减少记录/数据库大小)。我发现通过将索引字段的大小从 0 调整到 0.0202 可以让过滤机制再次工作,但会自动列出字段中的数字而不是关联的常用名称。似乎解决此问题的唯一方法是将您的关系链接从数字更改为文本,并使用通用名称作为实际条目(我认为这是巨大的错误更改)。希望他们能修复它。与此同时,我会寻找更好的答案。如果我找到了,我会在这里发布。-DFoxII

于 2016-10-06T03:45:28.427 回答
2

列出的答案并没有解决我的具体问题。我也没有让过滤器列表出现在子表单上。

在敲了很多次之后,我发现我的主表单将“允许过滤器”设置为否。即使子表单都打开了允许过滤器,但它们似乎继承了主表单的设置。

于 2018-10-17T14:16:39.803 回答
1

这是一个有很多答案的老问题。这些都不适用于 Access 2016。只有在我将表单的数据源从 SQL 语句更改为 Access 查询的简单名称之后,它才起作用并且快速过滤器重新出现。

于 2020-02-12T19:23:49.150 回答
0

我确实认为这是由于大量不重复的条目造成的。换句话说,这是因为您有许多条目没有从复选框过滤器中受益。他们留下“文本过滤器>”以便您可以搜索,但省略复选框,因为它只是一个列表太长。我不知道有什么方法可以改变这种行为,因为它内置在 Access 中作为不可自定义的。

底线:复选框对话框的选项太多,无法更改。

于 2012-08-21T17:45:47.577 回答
0

列上的数据类型看起来是number在这种情况下它根本没有文本过滤器。请注意,您的过滤选项是“数字过滤器”而不是“文本过滤器”

于 2012-08-21T17:49:11.310 回答
0

我解决了一个类似的问题 - Access 2013 中拆分表单的数据表部分中没有快速过滤器。快捷菜单的表单属性设置已设置为否。我将其更改为是,瞧,快速过滤器变得可用。

于 2014-08-21T20:29:15.803 回答
0

只需将您的数据类型更改为短文本即可。

于 2015-01-28T16:58:16.813 回答
0

确保不要使用“NO”作为字段名称。我有一个名为 NO 的字段,它导致过滤器消失。它似乎是 MS 访问的无证“功能”。

于 2017-02-01T16:50:30.503 回答
0

在这里,我找到了结果。首先,我要感谢这个答案,他给了我火花。

“表单的数据源查询具有导致递归过滤的过滤器参数集。当我删除该过滤器(因为它没有用)时,它运行良好。这就像一个逻辑错误导致了这个问题。”

我用两个代码来展示解决方案,其实是Access自身原因造成的。

代码1:

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+ 条记录。

第一次写回答,好激动。</p>

于 2017-08-03T02:39:00.850 回答
0

我遇到了同样的问题,在尝试了不同的方法(包括这里提到的方法)之后,我想我终于让它工作了。

首先,请确保您更改了布拉德在回答中所说的选项。我有一个包含两列 ID 和 CustomerName 的组合框。一开始,这个组合框的行源是:SELECT ID AS CustomerID, CustomerName FROM tblCustomers ORDER BY CustomerName; 过滤器的复选框未显示。

我发现这个查询组合框行源有两个问题:

  1. 您不能对 ID 列使用别名。
  2. 您不能对第二列(此处的 CustomerName)进行排序。

所以在我将查询更改为:SELECT ID, CustomerName FROM tblCustomers; 复选框回来了!(虽然你可以对第一列进行排序)

于 2018-04-10T03:09:56.293 回答
0

正如已经证明的那样,快速过滤器未显示有多种原因。我遇到的三个主要原因:

  1. 您已在 VBA 或表单的属性窗口中使用“自定义”SQL 设置表单的记录源——这些将阻止 Access 具有“快速过滤器”列选择。

要解决此问题,您需要将 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
  1. 下一个真的很狡猾 - 检查以确保源表的字段不是长文本。Access 将不允许在任何长文本字段上使用“快速过滤器”列。

  2. 确保您没有禁用表单的快捷菜单选项,该选项位于表单属性的“其他”选项卡中。

于 2021-04-07T21:45:14.980 回答
0

我遇到了一个字段不是“可排序”的问题,即在数据表视图中右键单击列时没有显示 AZ 选项。我从设计视图中删除了该字段,控制源并重新选择它,然后排序可用。

于 2021-07-13T00:24:22.887 回答
0

文件->选项->当前数据库->向下滚动到该部分->过滤myDBName数据库的查找选项检查ODBC字段复选框

于 2022-02-14T22:04:21.277 回答
-1

我发现如果表单的记录源是包含排序子句的 SQL 语句,则不会出现快速过滤器。

解决方案:要么删除排序子句(如果您希望对数据进行排序,则没有那么有用)或将包含排序的 SQL 语句保存为查询,然后将表单的记录源更改为已保存的查询。瞧,快速过滤器可用。

问候彼得。

于 2015-11-04T01:04:08.013 回答