SQL Server 后端缺少 MS Access 数据库复选框列表筛选器

Posted

技术标签:

【中文标题】SQL Server 后端缺少 MS Access 数据库复选框列表筛选器【英文标题】:MS Access Database Check Box List Filters Missing On SQL Server back end 【发布时间】:2010-05-01 23:08:01 【问题描述】:

当我将 Access 2007 连接到 SQL Server(无论是通过 ADO 记录集还是通过链接表)时,我不再在数据表列过滤器中获得(可用过滤器值的)复选框列表。

此功能是否仅适用于 MDB/ACCDB 和/或 DAO?

【问题讨论】:

我所知道的数据表视图中唯一的复选框列表是以 ACCDB 格式提供的多值字段。据我所知,SQL Server 不支持它,任何不需要它来实现 Sharepoint 兼容性的人都不应该使用它。 这与多值字段无关。这是您在过滤数据表时看到的复选框列表,显示列中的所有可用值。在数据表视图中,每个列标题旁边都有一个箭头。如果单击它,您可以选择过滤器以及所有可用值,假设没有太多不同的值(例如,位置字段但不是美元金额字段)。非常重要且有价值的功能。 【参考方案1】:

我认为本机 Access 表的数据表视图中的复选框由表设计中的“显示控件”属性控制。我不记得当表在 SQL Server 中时有什么可用的。如果您在“数据表视图”中提供表单,您应该能够将复选框控件绑定到 SQL Server 列。

编辑:我想我昨天误解了你的问题。如果您单击 Office 按钮,选择当前数据库,然后在“过滤器查找选项”下的“ODBC 字段”框中打勾……这样做是否符合您的要求?

【讨论】:

你成功了!谢谢。在其他论坛上没有其他人知道这个问题的答案。 对于 Access 2010,转到文件选项卡 > 选项 > 当前数据库,然后向下滚动到“筛选查找选项...” 是的!我检查了 ODBC 字段复选框,我解决了这个问题!非常感谢!【参考方案2】:

我知道我们不提出新问题是违反协议的,但我还是要回答这个问题,所以这个线程将是完整的。这是一个比之前更完整的答案。

我想我现在已经确定了这个话题。

查找过滤器不适用于不是 Access 对象的记录源,也不能直接在链接表中使用。

您必须创建链接表的查询,例如:Select * from tblOrders,并将该查询用作记录源以获取查找过滤器。

不过,我也找到了一种更灵活的方法。我创建对 SQL/Server 的直通查询并将其用作我的记录源。然后,在代码中,我将直通查询的 SQL 设置如下:

Currentdb.QueryDefs("qpstOrders").SQL="Select * from Orders where OrderID =" & Me.OrderID

在我的子表单的当前事件中,我动态更改查询以传递适当的记录——或者它可以只是一个更通用的查询。查找过滤器以这种方式工作得很好,并且与 SQL/Server 的交互速度非常快。

【讨论】:

没有人会看到这个。这是很好的信息,但由于它不是一个真正的问题,所以没有人会找到它。

以上是关于SQL Server 后端缺少 MS Access 数据库复选框列表筛选器的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 表单不允许添加 SQL Server 后端

多个 MS Access 前端连接到单个远程 SQL Server 后端

MS Access 2003 可以连接到的最新 SQL Server 后端是啥?

带有 SQL Server 后端更新的 MS Access 失败且没有错误

MS Access 前端与 SQL Server 后端查询存储最佳实践 [关闭]

MS Access / SQL Server JOIN返回左表中的所有值,如果右侧缺少则返回零