查找最大/最小值并在Microsoft Access中的子窗体中显示它们

时间:2013-07-17 18:05:35

标签: ms-access

早上好,

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

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

  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美元
  • Bar只能以5美元的价格从Supercorp Prime购买
  • 在组件子表单中,Foo应该以Supercorp Prime的最低成本1美元出现,但最糟糕的情况是我们必须支付3美元
  • 在组件子表单中,Bar应该有min&最高成本为5美元,也来自Supercorp Prime
  • 最好的情况是花费(2x $ 1 + $ 5)= 7美元的零件来构建1 Widgitizer
  • 但是,如果我们无法以任何理由从我们的首选供应商那里获得零件,那么构建Widgitizer的成本可能会高达(2x $ 3 + $ 5)= 11美元

我认为这是相对简单的,但我似乎无法做到这一点,并且无法找到任何类似的主题,足以显示我在编码尝试中出错的地方。

感谢您的帮助/见解!如果需要任何其他详细信息,请与我们联系。

〜d

*实际的实现设计有一些额外的复杂性,但如果我能够完成上述简单的工作,我应该很好地扩展它以使用我所拥有的。

1 个答案:

答案 0 :(得分:0)

你有一个精心设计的良好开端,但还有很多工作要做。假设您使用SQL(特别是Group By查询),您可以构建只读表单(可编辑版本是阶段2)。这是我看到的细分:

  1. 创建一个查询,作为主表单的基础。完成后,每个小部件将有一行数据。
  2. 创建一个查询,作为子表单的基础。这将包括每个组件的分钟数和最大值。
  3. 制作第三个查询,列出所有详细信息,直至每个组件的各个供应商。这里没有分钟或最大值。
  4. 首先构建子表单。它不需要很多装饰,因为它将被嵌入。
  5. 构建主窗体并嵌入子窗体。通过小部件ID链接两个。
  6. 构建第3个表单,列出每个组件的各个供应商。
  7. 在子窗体中,向“详细信息”部分添加一个按钮。按下时,会弹出第3个表格,列出各个供应商及其价格。