我正在将Access用户应用程序从使用本机Access表转换为使用ODBC链接的SQL Server表。为什么此下拉表单筛选器在本机表上工作,但不在ODBC链接表中工作?
我有一组窗体,这些窗体是通过从下拉列表中选择来进行过滤的(在独立选择窗体中)。按照设计,如果用户将下拉菜单留空,表单将启动未过滤。
所有这一切的工作原理与本地的表,但是当我尝试使用链接的表,我得到一个错误ODBC--call failed
对我使用的形式记录源查询生成的SQL查询访问即被过滤的是:
SELECT linked.ASSIGNED_CARE_COORDINATOR, [rest of the variables]
WHERE (((linked.ASSIGNED_CARE_COORDINATOR)=[Forms]![frmCoord_Selector]![cmbCoords]))
OR (((([linked].[ASSIGNED_CARE_COORDINATOR])
Like [Forms]![frmDeadline_Report_Coord_Selector]![cmbCoords]) Is Null));
我知道ODBC连接本身没问题;如果我在OR
之后删除代码,查询将与链接表一起工作,但当然不具有show-all-if-null功能。
这为什么会与本地表一起使用,而不是完全相同表的链接版本?
请告知*查询基础的过滤器*。该查询是表单记录源,下拉字段的控件源,VBA记录集还是其他?此外,还不清楚OR的逻辑,因为您似乎将两个表达式组合起来:LIKE和IS NULL。你有没有在这里正确复制这个? – Parfait
@Parfait查询是表单记录源(添加这也是问题文本)。我检查了副本,它是正确的。 – Rominus