Ms访问中的查询

时间:2010-09-13 14:35:54

标签: ms-access ms-access-2007 ms-access-2003

此查询显示eventtype不等于“PNremoved FROM Wrapper”的partnumbers。此查询显示正确的数据。可以从此跟踪号中删除部件号,但可以使用其他跟踪号输入。在那种情况下它不起作用。

我希望查询在我们输入相同的部件号和另一个跟踪号时有效。

部件号不应与我们使用的跟踪号一起显示eventtype =“pn从包装中删除”。但它应显示另一个具有相同部件号的跟踪号。

SELECT
    tblRevRelLog_Detail.RevRelTrackingNumber,
    tblRevRelLog_Detail.PartNumber,
    tblRevRelLog_Detail.ChangeLevel,
    tblRevRelLog_Detail.Version,
    tblRevRelLog_Detail.JobPnType,
    tblRevRelLog_Detail.EdsName,
    tblRevRelLog_Detail.DetailerNamePerPartNumber,
    tblRevRelLog_Detail.DetailerCompanyPerPartNumber
FROM
    tblRevRelLog_Detail LEFT JOIN tblEventLog
    ON tblRevRelLog_Detail.PartNumber = tblEventLog.PartNumber
WHERE
    tblEventLog.PartNumber Not In (
        SELECT tblEventLog.PartNumber
        FROM tblEventLog
        WHERE tblEventLog.EventTypeSelected = 'pn REMOVED From Wrapper')
ORDER BY
    tblRevRelLog_Detail.PartNumber;

我通过一个例子展示了这一点。

Reviewrelease_Form(主要表格)链接到reviewreleasetable:

此表包含基本数据和包装编号

                wrapper number:  Testing

RevRel_Form(子表单)链接到tblRevRelLog_Detail

此表单包含有关部件号

的数据
part no   chnglvl  jobpntype engineername company version
8765        1         XXXX      XXXXX       XXXX    xxxx
9898        0         xxxx       xxxxx      xxxx     xxxx
7889        2          xxxx      xxxxx       xxxx    xxxx

eventhistory(子表单)链接到tblEventLog

此表单包含带有部件号的事件

eventdate   partnum    eventtype       errortype     errorsubtype  comment

xxxxx        8765       1-receive new   xxxx           xxxx        xxxxx
xxxx         9898       1-recieve new   xxxx           xxxx        xxxxx
xxxx         7889       1-receive new   xxxx           xxxx          xxxx
xxxx         8765       2-assign        xxxx            xxx          xxx
xxx          9898       3 errors        xxxx            xxxx         xxxx

如果我想从包装中删除一个部件号,我将删除并且eventhistory表单如下所示

eventdate   partnum    eventtype       errortype     errorsubtype  comment

xxxxx        8765       1-receive new   xxxx           xxxx        xxxxx
xxxx         9898       1-recieve new   xxxx           xxxx        xxxxx
xxxx         7889       1-receive new   xxxx           xxxx          xxxx
xxxx         8765       2-assign        xxxx            xxx          xxx
xxx          9898       3 errors        xxxx            xxxx         xxxx
xxx          9898       'pn REMOVED....' xxx             xxx        xxxx

然后RevRel_Form不应显示此部件号数据,如下所示:

part no   chnglvl  jobpntype engineername company version
8765        1         XXXX      XXXXX       XXXX    xxxx
7889        2          xxxx      xxxxx       xxxx    xxxx

这对我在RevRel_form的数据源(我上面写的查询)中编写的查询工作正常。

但问题是,删除的部件号将在未来再次使用另一个新的包装编号。使用我现在使用的查询,它不会显示带有新包装编号的partnumber数据。

所以,我希望查询在RevRel_Form中显示具有新包装编号的partnumber数据。但不是我们删除该部件号的包装编号。

如果您无法以正确的格式查看记录,请在编辑视图中查看它们。

1 个答案:

答案 0 :(得分:0)

您需要添加对包装器的引用,例如:

WHERE
    tblEventLog.wrapper = 'wrapper id'
    AND tblEventLog.EventTypeSelected <> 'pn REMOVED From Wrapper'

如果事件日志不包含包装器ID,我认为您有设计问题,因为这些事件明显适用于特定的包装器。