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

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

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

本文只适用于 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、打开剪映,点击开始创作”进入选择页面。 2、选择一个视...

    阅读: 871

  • qq进群特效怎么关闭

    qq进群特效怎么关闭

    想要关闭qq进群特效,可以在qq群的进群特效相关功能进行关闭,开通超级会员才能享受进群特效,通过以下步骤关闭qq进群特效: qq进群特效怎么关闭 1、打开qq,点击qq群”进入qq群聊天页...

    阅读: 811

  • 地摊怎么申请微信商家码

    地摊怎么申请微信商家码

    地摊想要申请微信商家收款二维码,可以从微信收款小账本进行相关设置即可申请微信商家收款二维码,通过以下步骤可以申请微信商家收款二维码: 地摊怎么申请微信商家码 1、打开微信,切换到发现页面,点击小程序&...

    阅读: 907

  • 微信拉黑和删除

    微信拉黑和删除

    微信加入黑名单后给对方发消息,对方可以看到但不能回复,微信删除后双方都不能发消息,微信拉黑和删除具体步骤如下: 微信拉黑和删除 1、打开微信,切换到通讯录页面,点击联系人”进入联系人名片...

    阅读: 846

  • qq音乐删除访问记录别人能看见吗

    qq音乐删除访问记录别人能看见吗

    qq音乐删除了访问记录别人是不能看到的,可以在访客功能中删除访问记录,通过以下步骤删除qq音乐访问记录: qq音乐删除访问记录别人能看见吗 1、打开qq音乐,切换到个人中心,点击头像”进入...

    阅读: 803

  • 新加好友怎么才能分享屏幕

    新加好友怎么才能分享屏幕

    qq聊天中自带有分享屏幕的功能,只要加了好友,直接点击分享屏幕就可以将屏幕分享给对方。具体操作方法如下: 新加好友怎么才能分享屏幕 1.在qq中找到要分享屏幕的好友,点击进入对话界面。 2.点击对话...

    阅读: 886