• 首页>
  • 软件教程>
  • access绑定到存储过程或函数的窗体或报表没有应用WHERE条件

access绑定到存储过程或函数的窗体或报表没有应用WHERE条件

2024-06-22 11:54:25阅读量:34 字体:

本文只适用于 Microsoft Access 项目 (.adp)。
症状当您尝试使用其他对象(例如其他 Access 窗体)上显示的值来过滤 Access 窗体或报表时,该过滤器没有得到应用。 解决方案用户可以使用若干种方法来解决无法过滤绑定到存储过程或函数的窗体或报表的问题。这些解决方法的大多数都涉及到将存储过程或函数替换为其他某种类型的记录源,例如表、视图或 SQL 语句。

但是,下面的解决方法向您说明了如何继续使用存储过程作为窗体的记录源,同时又能成功地实现 WHERE 条件或过滤器。

小心:执行本示例中的步骤将会修改示例 Access 项目 NorthwindCS.adp。您可能需要备份 NorthwindCS.adp 文件,并在项目副本上执行这些步骤。

打开示例项目 NorthwindCS.adp。 在“数据库”窗口中,单击以突出显示 Categories 表,然后单击插入菜单上的自动窗体。 在设计视图中打开窗体。 从主窗体中删除标有 Table.Products 的子窗体对象,然后向该窗体中添加一个命令按钮。如果向导启动,请单击取消。 为命令按钮设置下列属性:Name:cmdFilterProducts Caption:Filter Products On Click:[Event Procedure] 将该命令按钮的 onClick 属性设置为以下事件过程:Private Sub cmdFilterProducts_Click() DoCmd.OpenForm "Products", acNormal, , , acFormEdit, acWindowNormal End Sub 在文件菜单上,单击“关闭并返回到 Microsoft Access”。 在文件菜单上,单击保存,然后将窗体另存为 Categories1。 在“数据库”窗口中,单击查询,然后单击新建。 在新建查询对话框中,单击创建文本存储过程,然后单击确定。 键入或粘贴以下 Transact-SQL 语句,然后关闭并使用 spProducts 的默认名称保存该过程:CREATE PROCEDURE spProducts @CatID int AS SELECT * FROM Products WHERE CategoryID = @CatID RETURN 在设计视图中打开 Products 窗体,然后将 Record Source 属性从 Products 更改为 spProducts。 向下滚动到窗体的 InputParameters 属性,然后为该属性分配以下值: @CatID int = Forms![Categories1]![CategoryID]
关闭并保存 Products 窗体,然后打开 Categories1 窗体。 浏览到类别名称 Confections,然后单击 Filter Products(过滤产品)按钮。注意,Products 窗体仅打开并显示那些类别为 Confections 的产品。 状态这种现象是设计所导致的。 更多信息通常,Access 用户希望限制在 Access 窗体或报表中显示的记录的数量。达到此目标的一个方法是:使用 WHERE 条件过滤窗体或报表中的记录,并使用其他某个对象来提供条件值。例如,一个窗体可以显示一个条件值,其他窗体将使用该条件值以便限制所显示的记录的数量。但是,如果您尝试过滤的窗体将一个存储过程或函数作为其记录源,则该过滤器被忽略。下列步骤阐述了这种现象。

小心:执行本示例中的步骤将会修改示例 Access 项目 NorthwindCS.adp。您可能需要备份 NorthwindCS.adp 文件,并在项目副本上执行这些步骤。

重现问题的步骤 按照本文此前“解决方法”部分中的第 1 到 5 步进行操作。 将该命令按钮的 onClick 属性设置为以下事件过程:Private Sub cmdFilterProducts_Click() DoCmd.OpenForm "Products", acNormal, , "[CategoryID] = " & Me!CategoryID, acFormEdit, acWindowNormal End Sub 在文件菜单上,单击关闭并返回到 Microsoft Access。 在文件菜单上,单击保存,然后将窗体另存为 Categories1。 在窗体视图中打开窗体。 浏览到类别名称 Confections,然后单击 Filter Products(过滤产品)按钮。注意,Products 窗体仅打开并显示那些类别为 Confections 的产品。 关闭 Products 和 Categories1 这两个窗体。 在“数据库”窗口中,单击查询,然后单击新建。单击 创建文本存储过程,然后单击确定。 键入或粘贴以下 Transact-SQL 语句,然后关闭并使用 spProducts 的默认名称保存该过程:CREATE PROCEDURE spProducts AS SELECT * FROM Products RETURN 在设计视图中打开 Products 窗体,然后将 RecordSource 属性从 Products 更改为 spProducts。 关闭并保存 Products 窗体,然后打开 Categories1 窗体。 浏览到类别名称 Confections,然后单击 Filter Products(过滤产品)按钮。请注意,Products 窗体打开并显示所有产品,而不只是 Confections 类别中的那些产品。

以上就是access绑定到存储过程或函数的窗体或报表没有应用WHERE条件的全部内容,望能这篇access绑定到存储过程或函数的窗体或报表没有应用WHERE条件可以帮助您解决问题,能够解决大家的实际问题是谜爱阁生活网一直努力的方向和目标。

推荐阅读

  • 花呗账单日怎么修改

    花呗账单日怎么修改

    花呗的账单日可以通过修改还款时间来修改,修改花呗的还款时间后,出账单的日子也会改变,通过设置修改花呗的账单日的具体操作步骤如下: 花呗账单日怎么修改 1、打开支付宝app,先点击下方的我的&rdquo...

    阅读: 757

  • 抖音怎么0.5倍速播放

    抖音怎么0.5倍速播放

    抖音视频播放有四种倍速选择,要设置0.5倍播放,在视频播放中即可直接设置。具体操作方法如下: 抖音怎么0.5倍速播放 1、打开手机抖音app,进入视频播放,长按视频,进入播放设置页面。 2、点击倍速...

    阅读: 768

  • 删除微信表情包

    删除微信表情包

    很多人的微信添加了很多表情包,如果要将微信内添加的表情包删除,进入微信的表情功能页面即可进行删除。具体操作方法如下: 删除微信表情包 1、打开手机微信app,点击我”,再点击表情&rdqu...

    阅读: 771

  • 家人地图如何开启永久位置

    家人地图如何开启永久位置

    家人地图是高德地图推出的家人定位查询功能,要开启家人地图永久位置分享,可以直接在家人地图设置中开启。具体操作方法如下: 家人地图如何开启永久位置 1、打开手机高德地图app,点击我的”。 ...

    阅读: 820

  • 快手号怎么修改不了,只有复制

    快手号怎么修改不了,只有复制

    快手号只有复制,修改不了,是因为近期已经修改过快手号了,从修改时开始需要等待90天后才能再次修改。修改快手号的具体操作方法如下: 快手号怎么修改不了,只有复制 1、打开手机快手app,点击左上角三条横...

    阅读: 705

  • qq群怎么设置不让群成员加好友

    qq群怎么设置不让群成员加好友

    qq群目前还不能设置不让群成员加好友,只能设置不让群里的人发起临时会话减少群员的互动性。设置不让群里的人发起临时会话的具体操作如下: qq群怎么设置不让群成员加好友 1、打开手机QQ软件,找到自己创建...

    阅读: 687