ここから質問投稿すると、最大10000ポイント当たる!!!! >>

こんにちわ。

Windows2000、Access2000という環境下で、
住所録の統合をしようとしています。

簡単な構成は、前任者が、グループ関連会社別に住所録のmdbを作っており、各テーブルのフィールドで主要なものは、「通し番号(各mdbごと)」「氏名」「会社名」「住所」です。

ここで、最終的にテーブルを一つにまとめれば完了としたいところなのですが、
2002年夏の時点での住所録A.mdb
2003年冬の時点での住所録B.mdb
2003年春の時点での住所録C.mdb
とあり、それぞれにBの時点での新規入力・(住所等の)更新、Cの時点での新規入力・更新があるのです。
BはAを元に作られており、CはBを元に作られています。
ダブっている部分があるのです。

そこで、AとBを比較してAの中で「氏名」、「会社名」が同じもの以外と、Bのデータを新しいDBのテーブルへ、
新しくできたDBのテーブルとCのテーブルとを比較して、「氏名」「会社名」が同じものは、既存のレコードを消去してCのデータを追加するということをやりたいのです。
つまり、BやCでの更新・新規入力をうまく反映させた形の住所録にしたいのです。
Access自体の使い方に不慣れなもので、この作業がAccessのクエリ等の組み合わせでできるのか、それともSQLやVBAを駆使しないと無理なのかの判断もつきません。

どなたか参考になりそうな操作やSiteを知っていましたら、
教えてください。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

その3つのテーブルはフィールド構造は一緒でしょうか?


一緒ならUNIONクエリーを作成したら良いのではないでしょうか。

例えばテーブルA、B、Cがあって、いずれも名前、住所というフィールドがあるとしたら
=操作方法=
1.クエリーをデザインビューで新規作成します。
2.テーブルの表示は、なにも選択せず閉じます。
3.画面左上のファイルメニューの下にSQLというボタンが出来ているはずです。
4.クリックするとSQLウインドが表示されます。SELECT;のみが表示されていると思います。
5.下記のようなSQL文を入力します。
===============================
SELECT A.名前,A.住所
FROM A
UNION SELECT B.名前,B.住所
FROM B
UNION SELECT C.名前,C.住所
FROM C;
===============================
重複データを省く述語DISTINCTを使用しなくても、おそらく重複データがある場合自動的に併合されると思います。
されなければHELPでDISTINCTの使い方を調べてSQL文を書き換えて見てください。

この回答への補足

回答ありがとうございます。
記述方法まで記載していただけて助かります。
しばらく反応がなかったもので、
回答がつかないのではないかと落ち込んでいたところでした。(^_^;)

フィールドに関しては、A、B、C共に同じものだけになっています。

次に指摘して頂いた方法についてですが、
”重複データが併合”されるという点に心配があります。
AにBやCでの新規入力・更新と同じデータあった場合
(つまりAとBに名前が同じであるが違う住所で載っているという場合など)、
Bのデータのみを残し、Aを削除した形の”併合”になるかです。
UNIONクエリというものがあるのは、なんとなく知っていたのですが、会社のPCに入っているOfficeがおかしいのか、Helpが表示されないので躊躇していました。

この条件を満たす重複データ削除については「DISTINCT」を利用しないと無理なのでしょうか?

お手数だとは思いますが、再び回答を頂けるとありがたいです。m(__)m

補足日時:2003/05/16 11:53
    • good
    • 0
この回答へのお礼

長らくお礼もせずに申し訳ありません。

ひとまず、この目的はExcelで実現させました。
Accessであれこれ組むには、
もっと勉強が必要だと実感しましたので。(^_^;)

今後もAccess自体は使ってみたいので、
何かの際に質問をするかもしれませんが、
その際にはよろしくお願いします。

ありがとうございました。

お礼日時:2003/06/05 02:19

いい忘れです。


そのクエリーを元にテーブル作成クエリーを作って実行させれば新しいテーブルが出来ます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング