我的表单frmScreen
有3个字段File_Number, id, country
。数据从Screen
表中作为数据源提取。report
具有相同的数据源
我在窗体上有一个调用report rptScreen的按钮。我想将文件名作为参数传递给报表,以便报表仅显示
Select * from Screen where File_Number=<parameter passed through the form?
我在StackOverflow上检查过以前的帖子,但它并没有帮助我。
那么如何传递参数以及我应该在报告中做些什么更改,以便将File_Number
字段作为参数并仅显示与查询匹配的记录
我的代码如下所示
stLinkCriteria = "[File Number]=" & "'" & Me![File Number] & "'"
DoCmd.OpenReport "rptScreen", acViewPreview, , stLinkCriteria
错误:报告仅针对file number
答案 0 :(得分:1)
更改报告的Row Source
以返回所有行...
SELECT * FROM [Screen]
然后,您可以使用DoCmd.OpenReport
打开报告,并使用其 WhereCondition 选项按照您的意愿过滤报告的数据...
stLinkCriteria = "[File_Number]='" & Me![File Number].Value & "'"
Debug.Print stLinkCriteria '<- check this in Immediate window; Ctrl+g will take you there
DoCmd.OpenReport "rptScreen", acViewPreview, , stLinkCriteria
注意:
Screen
是Access reserved word。虽然这可能不会给这里造成麻烦,但为了安全起见,我在SELECT
声明中括起了这个名字。但如果可能的话,最好给那个表另一个名字。Screen.File_Number
是有效字段,而Me![File Number]
是指表单上的控件。但由于早期对这些名称的空间与下划线的混淆,这种推定似乎不稳定。 DoCmd.OpenReport
和 WhereCondition ,它将包含表格中的所有行。这可能不是你真正想要的,但是现在让我们试着让一些基本工作。