2

私は MS Access 2010 を使い始めたばかりで、次の設定をしています。3 つの Excel ファイル: masterlist.x (私が販売するすべての製品を含む)、vender1.x (vender1 のすべての製品を含む、これらの製品の一部のみを販売する)、および vender2.x (ここでも、vender2 のすべての製品を含む、私はこれらの製品の一部のみを販売しています)。データ収集の例を次に示します。

masterlist.x
ID     NAME     PRICE
23     bananas  .50
33     apples   .75
35     nuts     .87
38     raisins  .25

vender1.x
ID     NAME     PRICE
23     bananas  .50
25     pears    .88

vender2.x
ID     NAME     PRICE
33     apples   .75
35     nuts     .87
38     raisins  .25
49     kiwis    .88

ベンダー リストは定期的に更新され、新しい販売アイテムと新しい価格が表示されます。たとえば、vender1 がバナナの価格を 0.75 ドルに引き上げると、これを反映するように masterlist.x を更新する必要があります。

現在の状況: 3 つの Excel グラフを Access にインポートする方法を知っています。そこから、目標を達成するためにリレーションシップのセットアップ、マクロの作成、または SQL クエリの作成が必要かどうかを調査してきました。必ずしも解決策を探しているわけではありませんが、正しい方向に向けられることは素晴らしいことです!

また、masterlist.x テーブルが更新されたら、影響を受けた項目を確認するにはどの機能を使用すればよいですか?

更新: SQL /JOIN/ を発見し、以下を持っています:

SELECT * FROM master
LEFT JOIN vender1
ON master.ID = vender1.ID
where master.PRICE <> vender1.PRICE;

これにより、出力が得られます(上記のシナリオの場合)

ID     NAME     PRICE    ID     NAME     PRICE
23     bananas  .50      23     bananas  .75

代わりにどの機能が私に与えるでしょうか:

masterlist.x
ID     NAME     PRICE
23     bananas  .75
33     apples   .75
35     nuts     .87
38     raisins  .25
4

1 に答える 1

0

あなたがデザインするアイデアを求めていたので、ここに注意があります。私はあなたの現在のテーブルスキーマを本当に好きではありません。次のクエリはSQLServer2008に組み込まれています。これは、sqlfiddleでMSAccessSQLに最も近い構文です。

ご覧ください:

提案されたテーブルデザイン:

vendorテーブル:

VID     VNAME
1       smp farms
2       coles
3       cold str
4       Anvil NSW

productテーブル:

PID     VID     PNAME       PPRICE
203     2       bananas     0.5
205     2       pears       0.88
301     3       bananas     0.78
303     3       apples      0.75
305     3       nuts        0.87
308     3       raisins     0.25
409     4       kiwis       0.88

masterlist

ID  PID     MPRICE
1   203     0.5
2   303     0.75
3   305     0.87
4   308     0.25

結合クエリを使用すると、今すぐ簡単に更新できますmasterlist。例:

ベンダーが果物の価格を更新すると、提供されます。または、その製品の供給を停止したとき。必要に応じて、句を使用whereして条件をクエリに追加できます。

クエリ:

SELECT m.id, p.vid, p.pname, p.pprice
FROM masterlist m
LEFT JOIN product p ON p.pid = m.pid
;

結果:

ID  VID     PNAME       PPRICE
1   2   bananas     0.5
2   3   apples      0.75
3   3   nuts        0.87
4   3   raisins     0.25

コメントしてください。ご不明な点がございましたら、お気軽にお問い合わせください。

于 2013-01-09T19:47:10.643 に答える