1

我的设置:我有两个表:tblAuthors 和 tblBooks。tblAuthors 包括一个作者列表:Kurt Vonnegut、Frank Herbert、JK Rowling、John Nichols 等。tblBooks 包括一个列表作者:Slaughter House Five、Cat's Cradle、Monkey House、Dune、Harry Potter、Milagro Beanfield War 等。

tblBooks 包含一个名为“excerpts”的备忘录栏。本节包含每部小说中具有特殊意义或意义的一小段。

我也有两种形式:frmAuthor 和 frmBooks。frmAuthor 包括作者姓名以及与此问题无关的更多作者特定信息(出生日期、出生地点、首选流派、灵感等)。frmBooks 包括作者姓名以及其他一些信息(出版公司、完成日期、类型)。

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

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

4

1 回答 1

1

在我看来,您希望报告基于(from ) 和在其中一种形式 ( ?)上选择的单词进行tblBooks过滤。author_namefrmAuthorfrmBooks

因此,如果我已经正确解释了这一点,并且如果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
于 2012-07-10T21:52:27.117 回答