从跨表查询中打开Access中的表单

时间:2012-12-20 21:41:22

标签: ms-access

以下是该方案。我有一个基本上用于管理文档的单一功能的数据库。我正在为这个例子处理两个表。

表1:具有以下字段DOCUMENT_NUM,PK的文档表; DOCUMENT_NAME;表1的一对多关系,基于DOCUMENT_NUM

的参照完整性

表2:具有字段DOCUMENT_NUM,PK的文档的修订历史表; REVISION_DATE; REVISION_NUM

我有一个表格输入表1的信息,另一个表格将信息输入表2,将DOCUMENT_NUM拉出表格1中的标准。

我的问题:我有一个搜索表单,我希望能够通过不仅搜索表1中的参数而且还搜索表2中的表1来打开表1。 。示例:搜索在## / ## / ####和## / ## / ####之间修改的文档,但会打开表单1,其中包含“DOCUMENT_NUM”,“DOCUMENT_NAME”等。但是我不能这样做从1开始的搜索与表1绑定,我查询的信息在表2中。

搜索使用DoCmd.OpenForm "Documents",,,strQuery其中strQuery = "1=1 AND [SOPS].[SOP_NUMBER] = 'QA-001' AND [SOP_REVISIONS].[REVISION_DATE] >= #12/02/2011# AND [SOP_REVISIONS].[REVISION_DATE] <= #12/02/2012#"

([SOPS] ==表1&amp;&amp; [SOP_REVISIONS] ==表2)

1 个答案:

答案 0 :(得分:2)

怎么样:

strQuery = "1=1 AND [SOPS].[SOP_NUMBER] = 'QA-001' " _
    & "AND DOCUMENT_NUM IN (" _
    & "   SELECT DOCUMENT_NUM FROM [SOP_REVISIONS] " _
    & "   WHERE [SOP_REVISIONS].[REVISION_DATE] >= #12/02/2011# " _
    & "   AND [SOP_REVISIONS].[REVISION_DATE] <= #12/02/2012#)"

换句话说,使用子查询从[SOP_REVISIONS]获取相关的DOCUMENT_NUM。