我的设置:我有两个表:tblAuthors和tblBooks。 tblAuthors包括一个列表作者:Kurt Vonnegut,Frank Herbert,JK Rowling,John Nichols等.tblBooks包括一系列书籍:Slaughter House Five,Cat's Craddle,Monkey House,Dune,Harry Potter,Milagro Beanfield War等。
tblBooks包含一个名为“摘录”的备忘录。本节包含每本小说中具有特殊意义或含义的小段落。
我也有两种形式:frmAuthor和frmBooks。 frmAuthor包括作者的姓名以及一些与此问题无关的作者特定信息(出生日期,出生地,优先类型,灵感等)。 frmBooks包括作者姓名以及其他一些信息(出版公司,完成日期,类型)。
我目前正在使用过滤功能在表单中生成报告。我目前正在使用它来查找简单的东西(作者姓名或流派)。我希望我能够通过使用表单中的摘录部分生成报告。我希望能够搜索一个常用词(例如,上帝,蛇,马,教堂,众议院,道路......)或短语,以便在摘录中。这样我就可以生成一个具有共同主题的报告。
如果我需要澄清这一点,请告诉我,我知道这看起来有点令人费解。感谢您的时间。
答案 0 :(得分:1)
在我看来,您希望报告基于tblBooks
并按author_name
(来自frmAuthor
)过滤,并在其中一个表单上选择一个字词frmBooks
?)。
所以,如果我正确解释了这一点,并且frmAuthor
包含一个名为txtAuthor
的文本框,而frmBooks包含一个名为txtSearch
的文本框,其中用户输入一个单词摘录字段,查看这样的查询是否返回您想要的行。
SELECT *
FROM tblBooks
WHERE
author_name = Forms!frmAuthor!txtAuthor
AND excerpts Like '*' & Forms!frmBooks!txtSearch & '*';
如果在替换您的实际控件名称后该查询适合,您可以将其用作报表的记录源。 (但SELECT
是一个实际的字段名称列表,而不是SELECT *
)
或者,您可以使用未过滤的查询作为报告的记录来源,并将WHERE
子句(不带WHERE
)作为 WhereCondition 参数提供,以打开它到DoCmd.OpenReport
:
Dim strWhere As String
strWhere = "author_name = Forms!frmAuthor!txtAuthor" & _
" AND excerpts Like '*' & Forms!frmBooks!txtSearch & '*'"
Debug.Print strWhere
DoCmd.OpenReport "YourReportName", WhereCondition:=strWhere