0

複数の親タイプの 1 つを 1 つの子アイテムに割り当てる必要があります。私が遭遇した問題は、Access 2010 Web データベースで、Union クエリを作成して、(複数のテーブルから) すべての潜在的な親を単一のドロップダウン/リストボックスに入れることができないことです。

私はこれらすべてに少し緑色で、完全に間違っている可能性があります。私は提案に非常にオープンです。これが私の例です:

  • コントラクトはサブコントラクトの親です。
  • 契約と下請契約の両方に作業明細書 (SoW) があります。
    • 契約と下請契約は、両方とも SoW の直接の親になることができます。
  • 各 SoW の親は 1 つだけです
    • SoW は段落に分割されています (過度に重要ではありません)。

ユニオン クエリを使用すると、次のようにデータベースを構築できます。

  • 契約表
  • 下請け表
  • 契約および下請契約のユニオン テーブル
  • 単一のデータ ソースから契約または下請契約を親として選択するために、SoW テーブルからユニオン テーブルを参照します。

ここでの問題は、Web データベースでユニオン クエリを作成できないことです。

私の他の唯一の考えは、この方法でデータベースを構築することです:

  • 契約表
  • 下請け表
  • 契約 SoW テーブル
  • 下請けの SoW テーブル

このデザイン (2 つのテーブルを使用) は、ユニオン テーブルを使用しようとしたときにサブフォームに問題が発生する可能性があるため、データ入力にはより効果的に機能する可能性があります。まだ試していないのでわかりません。この方法を使用すると、Access レポートはサブコントラクトを親コントラクトにバインドし、すべてのデータを詳細セクションに表示できるはずです。ただし、この設計は、2 つの別個のテーブルを使用して同一のデータを格納することを意味します。

4

1 に答える 1

0

2 つのコントラクト テーブルを次のような 1 つのテーブルにまとめます。

CREATE TABLE ContractTable(
  ContactID INTEGER NOT NULL PRIMARY KEY, -- Possibly an autonumber
  [various contract columns],
  ParentContract INTEGER
);

これは Access に適した構文ではないことはわかっています。私は通常、より大きな DB を使用しますが、アイデアを得ることができるはずです。

次に、親コントラクトを検索するクエリはSELECT ... FROM ContractTable WHERE ParentContract IS NULL.

サブコントラクトを検索しますSELECT ... FROM ContractTable WHERE ParentContract IS NOT NULL

このアプローチに関する私の懸念は、コントラクトのチェーンを検索する必要がある場合 (つまり、B の親が C の親であり、D の親であり、A から D に移動する必要がある場合)、再帰 SQL に遭遇する可能性があることです。 Access で処理できるとは思えません。VBAコードで行う必要があります。

于 2013-05-30T20:07:26.817 に答える