ms-access - 在 DoCmd.OpenReport Wherecondition 参数中引用查询中的字段
问题描述
我有一个命令按钮来打开一个带有查询应用过滤器的报告。这样我就可以通过父报表的子报表中的字段值过滤报表,否则过滤条件会更直接。我的设置Wherecondition
如下:
Private Sub CmdOpenReport_Click()
DoCmd.OpenReport "rptName", , , CategoryID = [Queries].[qryFltrRptByCat]!CategoryID
End Sub
当我单击按钮时,我收到以下错误消息:
运行时错误“2465”
Microsoft Access 找不到表达式中引用的字段。
引用查询中的字段的正确语法是什么?
查询在子表单中查找值并找到与CategoryID
子表单值匹配的内容。CategoryID
这是因为子表单中的数据与父表单中的数据是多对一的关系。
解决方案
如果CategoryID
是活动形式和字符串,您可以使用:
Docmd.OpenReport "rptName", , , "CategoryID = '" & Me.CategoryID & "'"
如果CategoryID
是活动形式和整数/双精度,您可以使用:
Docmd.OpenReport "rptName", , , "CategoryID = " & Me.CategoryID
如果CategoryID
在主窗体中但子窗体处于活动状态,您可以使用:
Docmd.OpenReport "rptName", , , "CategoryID = " & Me.Parent.CategoryID
而且您始终可以使用总参考:
Docmd.OpenReport "rptName", , , "CategoryID = " & Forms!YourForm!CategoryID
您可以在这里查看更多信息:
推荐阅读
- r - 比较R中多个时间序列的间隔
- flutter - 如何制作一个 100% 父宽度的行,其中有 2 个孩子,其中第二个孩子位于屏幕宽度的中心
- vue.js - 如何在 IP 地址上启动 nuxt 项目
- c# - IdentityServer4 LocalApi 与 .NET Core 3.1 中的自定义策略
- javascript - 引导导航栏下拉菜单的纯 javascript 方式
- ios - 以编程方式分配约束失败 UIViewController Xcode 11
- azure - Microsoft Azure 文本翻译 API 翻译错误
- typescript - 如果两个元组使用 Typescript 相等,你如何比较?
- excel - 如果之前打印过东西,有什么方法可以在excel中记录吗?
- javascript - 正则表达式在编辑器中查找具有单个参数的函数