MS Access 2007关键字在表单内搜索以生成报告

时间:2012-07-10 21:15:22

标签: ms-access ms-access-2007

我的设置:我有两个表: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包括作者姓名以及其他一些信息(出版公司,完成日期,类型)。

我目前正在使用过滤功能在表单中生成报告。我目前正在使用它来查找简单的东西(作者姓名或流派)。我希望我能够通过使用表单中的摘录部分生成报告。我希望能够搜索一个常用词(例如,上帝,蛇,马,教堂,众议院,道路......)或短语,以便在摘录中。这样我就可以生成一个具有共同主题的报告。

如果我需要澄清这一点,请告诉我,我知道这看起来有点令人费解。感谢您的时间。

1 个答案:

答案 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