MS Access:报告包含来自第三个表的信息

时间:2015-07-01 16:14:03

标签: ms-access

我目前正在为一家公司开发数据库,​​供他们在制作生产订单时使用。报告应由若干内容组成,主要包括产品编号,订单编号等。报告的一部分应由生产相关项目所需的备件清单组成。我有一个带有订单号和产品编号的表,需要查看另一个表以找到必要的备件。但是,这些备件的名称,位置和库存都在第三个表格中,当产品编号已知时,我似乎找不到自动包含这些内容的方法。我是MS Access的新手,所以任何帮助都将不胜感激。谢谢!

我有一个名为Table1的表,它使用组合框自动填充来自给定产品编号的生产时间,测试时间等框。此数据从第二个表StandardTimes收集,该表具有产品编号的主键。该表中的其他列包括生产区域,标准数量,平均生产时间,还包括几列中所需的必要备件。在名为Inventory的第三个表中,我们有备件的产品编号,它们在存储中的位置以及当前存储的项目数。我使用带有订单号的查询创建了一个报告,并从Table1创建了一个关于该订单号的报告。需要在此报告中包含的是必要的备件清单,存储中的位置以及当前存储的项目数。

从新用户输入修改

您的问题仍未提供实际的列或数据。因此,很难对您的需求进行建模。 但是,基于我能阅读的内容,我认为您在关系模型中缺少一些基本的设计设置项。

假设您有3个表:Table1(订单),StandardTimes(产品)和库存(SpareParts)

在英语中,每个订单都有一个或多个产品。每个产品都有一个或多个备件。实际上,您需要一个订单表和一个订单详细信息表,其中包含每个项目的记录作为该订单的一部分。但是我在你的设置上回答它我认为是有缺陷的。

订单&lt ;-( 1:M) - >产品< - (1:M) - >按应用场合搜索

您有OrderID,ProductID和SparePartID。

这样的查询会将这3个表与这种关系结合在一起。

SELECT  o.OrderNum, o.ProductNum, st.ProductionArea, st.StandardQuality, i.SparePartsNum, i.Location, i.Qty
FROM Orders as o
INNER JOIN StanardTimes as st on o.ProductNum = st.ProductNum
INNER JOIN Inventory as i on i.ProductNum = st.ProductNum

1 个答案:

答案 0 :(得分:0)

一些示例数据有助于帮助设计查询。 原则上,您需要将这些表连接在一起才能获得所需的结果。

您可以将tblOrders上的productID加入tblProducts上的ProductID。这将为您提供产品名称等。 这将是一个INNER联接,因为每个订单都有一个产品。

然后您将使用productID加入tblSpareParts,以便您可以返回该产品的备件状态。这可能是LEFT JOIN而不是INNER,但它取决于您是否为备件保持值0(例如,每个产品都有相应的备件记录),或者如果您只保留备件的备件记录备件。