0

おはようございます、

新製品の構築に使用されるコンポーネント/パーツを追跡するために、Microsoft Access でフォームを構築しています。最小値/最大値の使用に関する質問があります。

まず、いくつかのコンテキスト。少し簡略化された*、関連するテーブルは次のとおりです。

  1. コンポーネント: 販売されているウィジェットを構築するために必要な 部品です。
  2. サプライヤー: これらは、コンポーネントを入手できる場所です。一部のコンポーネントは、複数の場所で異なる価格帯で入手できます。
  3. Products : 構築できるさまざまなウィジェット。
  4. CompSuppliers : コンポーネントとサプライヤーの間の実質的な多対多の関係。各サプライヤーからの各アイテムの単価など、いくつかの追加情報が含まれています。
  5. ProdComponets : 製品とコンポーネント間の効果的な多対多の関係。問題のウィジェットを作成するために必要なアイテムの数など、いくつかの追加の詳細が含まれています。

すべてのテーブルには自動採番 ID フィールドがあり、すべての関係はデータベースで定義されています。

この情報をまとめるフォームを作成して、特定のウィジェットを表示するときに、そのウィジェットに入るすべてのコンポーネントと、各部品の最適な価格とサプライヤーをリストするサブフォームがあるようにしたいと思います。次に、メイン フォームでこれらの値の合計を計算して「最良のコンポーネント価格」(より高価なサプライヤーを使用する必要がある場合は、最悪の場合の価格) を取得し、適切なリスト価格を設定できるようにします。ウィジェット。

最後に、フォーム/サブフォームで新しいウィジェットを作成し、サブフォームを介してすべてのコンポーネントを追加し、合計部品コスト (最良のケースと最悪のケース) を提供できるようにする必要があります。

例:

Widgitizer を構築するには、2 つの Foo と 1 つの Bar が必要です。

  • Foo は Supercorp Prime から各 $1 で購入できます
  • Foo は、Emergicorp Alpha からも各 $2 で入手できます。
  • Foo は、Emergicorp Beta からも各 $3 で入手できます。
  • バーは Supercorp Prime からのみ $5 で購入できます
  • コンポーネント サブフォームでは、Foo は Supercorp Prime での最小コスト $1 で表示されるはずですが、最悪の場合、$3 を支払わなければならないことになります
  • Components サブフォームでは、Bar の最小コストと最大コストを $5 にする必要があります。これも Supercorp Prime からのものです。
  • 最良のケースでは、(2x$1 + $5) = $7 のパーツで 1 つの Widgitizer を構築できます。
  • ただし、何らかの理由で希望するサプライヤから部品を入手できない場合、Widgitizer を構築するために (2x$3 + $5) = $11 の部品が必要になる可能性があります。

これは比較的簡単だと思いましたが、うまくいかないようで、コーディングの試みでどこが間違っているかを示すのに十分に類似したトピックを見つけることができませんでした.

ヘルプ/洞察をありがとう!追加の詳細が必要な場合はお知らせください。

~D

*実際の実装は、いくつかの追加の複雑さで設計されていますが、上記の単純なケースを機能させることができれば、私が持っているもので機能するように拡張するのは良いことです.

4

1 に答える 1

0

適切に設計された良いスタートを切っていますが、やるべきことはたくさんあります。SQL (特に Group By クエリ) に慣れていると仮定すると、読み取り専用フォームを作成できます (編集可能なバージョンはフェーズ 2 です)。私が見た内訳は次のとおりです。

  1. メイン フォームの基礎となるクエリを作成します。完了すると、ウィジェットごとに 1 行のデータが作成されます。
  2. サブフォームのベースとなるクエリを作成します。これには、コンポーネントごとの最小値と最大値が含まれます。
  3. 各コンポーネントの個々のサプライヤーに至るまで、すべての詳細を一覧表示する 3 番目のクエリを作成します。ここには最小または最大はありません。
  4. 最初にサブフォームを作成します。埋め込まれているので余計な加工は必要ありません。
  5. メイン フォームを作成し、サブフォームを埋め込みます。2 つをウィジェット ID でリンクします。
  6. 各コンポーネントの個々のサプライヤーをリストする 3 番目のフォームを作成します。
  7. サブフォームで、詳細セクションにボタンを追加します。これを押すと、個々のサプライヤーとその価格をリストする 3 番目のフォームがポップアップ表示されます。
于 2013-07-17T21:56:48.440 に答える