2012-07-10 81 views
1

我的設置:我有兩個表: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等。MS Access 2007關鍵字在窗體內搜索生成報告

tblBooks包含名爲「摘錄」的備忘錄顏色。本節包含每一部小說中具有特殊意義或意義的一小段。

我也有兩種形式:frmAuthor和frmBooks。 frmAuthor包括作者姓名以及一些與作者有關​​的特定信息,這些信息與這個問題(出生日期,出生地點,優先流派,靈感等)並不特別相關。 frmBooks包括作者姓名以及一些其他信息(出版公司,完成日期,流派)。

我目前使用過濾功能在我的表單中生成報告。我現在只是用它來找到簡單的東西(作者姓名或流派)。我希望能夠通過使用表格中的摘錄部分來生成報告。我希望能夠搜索一個常用詞(例如上帝,蛇,馬,教堂,房屋,道路......)或短語,以便在摘錄之內。這樣我就可以生成一個具有共同主題的報告。

請讓我知道,如果我需要澄清這一點,我知道它可能看起來有點複雜。感謝您的時間。

回答

1

在我看來,要立足於報告tblBooksauthor_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