0

早上好,

我正在 Microsoft Access 中构建一个表单来跟踪构建新产品的组件/部件,并且我有一个关于使用最小值/最大值的问题。

首先,一些背景。稍微简化*,涉及的表格是:

  1. 组件:这些是构建正在销售的小部件所需的部件
  2. 供应商:这些是我们可以从中获取组件的地方。一些组件在多个地点以不同的价格提供。
  3. 产品:可以构建的各种小部件。
  4. CompSuppliers:组件和供应商之间的有效多对多关系。包括一些附加信息,例如每个供应商的每个项目的单价。
  5. ProdComponets:产品和组件之间的有效多对多关系。包括一些额外的细节,例如制作有问题的小部件需要多少项目。

所有表都有一个自动编号 ID 字段,所有关系都在数据库中定义。

我想制作一个将这些信息汇总在一起的表单,以便在查看给定小部件时有一个子表单,其中列出了进入所述小部件的所有组件,以及每个部件的最佳价格和供应商。然后,在主表格上,我可以对这些值求和以获得“最佳组件价格”(同样,如果我们必须与更昂贵的供应商合作,则为最坏情况下的价格),以便我们可以为小部件。

最后,表单/子表单应该允许您创建一个新的小部件,通过子表单添加所有组件并为您提供总零件成本(最佳情况和最坏情况)。

例子:

构建 Widgitizer 需要 2 x Foo 和 1 x Bar。

  • Foo 可从 Supercorp Prime 以 1 美元的价格购买
  • Foo 也可从 Emergicorp Alpha 购买,每个 2 美元
  • Foo 也可从 Emergicorp Beta 获得,每个 3 美元
  • 酒吧仅在 Supercorp Prime 提供,每支 5 美元
  • 在组件子表单中,Foo 应该在 Supercorp Prime 以最低成本 1 美元出现,但最坏的情况是我们必须支付 3 美元
  • 在组件子表单中,Bar 的最低和最高成本应为 5 美元,同样来自 Supercorp Prime
  • 最好的情况下,构建 1 个 Widgitizer 将花费 (2x 1 + 5 美元) = 7 美元
  • 但是,如果由于某种原因我们无法从首选供应商处获得零件,则构建 Widgitizer 的零件成本可能高达 (2x$3 + $5) = $11

我认为这会相对简单,但我似乎无法完成这项工作,也无法找到任何足够相似的主题来显示我在编码尝试中出错的地方。

感谢您的任何帮助/见解!让我知道是否需要任何其他详细信息。

~D

*实际实现的设计有一些额外的复杂性,但如果我能得到上面描述的简单案例,我应该很好地扩展它以使用我所拥有的。

4

1 回答 1

0

您已经有了一个精心设计的良好开端,但还有很多工作要做。假设您对 SQL(尤其是 Group By 查询)很熟练,您可以构建一个只读表单(可编辑版本是第 2 阶段)。这是我看到的细分:

  1. 进行查询,作为主表单的基础。完成后,每个小部件将有 1 行数据。
  2. 进行查询,作为子表单的基础。这将包括每个组件的最小值和最大值。
  3. 进行第三次查询,列出每个组件的各个供应商的所有详细信息。这里没有最小值或最大值。
  4. 首先构建您的子表单。它不需要太多装饰,因为它将被嵌入。
  5. 构建您的主表单并嵌入子表单。通过小部件 ID 链接两者。
  6. 建立第三个表格,列出每个组件的各个供应商。
  7. 在子窗体中,将一个按钮添加到详细信息部分。按下时,将弹出第三个表格,列出各个供应商及其价格。
于 2013-07-17T21:56:48.440 回答