アプリ版:「スタンプのみでお礼する」機能のリリースについて

Accessのテーブルへのデータインポートについて

Access2002で、A.mdbのTESTテーブルからB.mdbのTESTテーブル(構造は同じ)へテーブルデータをインポートしたいのです。
TESTテーブルの主キーはSEQ(オートナンバー)しかありません。
そのときに、コピー元とコピー先の主キーに重複があった場合、オートナンバーなので自動で再付番しデータが追加して欲しかったのですが、
Accessの機能のエクスポート、インポートでは、コピー先に主キーに重複があったデータは上書きされてしまいます。

テーブルを開き、データをコピー&ペーストしますと、ペーストしたときにオートナンバーで自動で再付番されます。
この方法でもいいのですが、データが数百万件あるので、現実的ではありません。

Accessのインポート・エクスポートで、オートナンバーで主キーを再付番してから、B.mdbのTESTテーブルにデータ追加する方法はないでしょうか?
よろしくお願いいたします。

A 回答 (3件)

テキストファイルを使ってエクスポート&インポートします。


(1)A.mdbで、TESTテーブルをテキスト形式でエクスポート
 「先頭行をフィールド名として使う」にチェック
(2)テキストエディタでSEQの列を削除
(3)B.mdbで、テキストファイルからインポート

もう少し簡単な方法
B.MDBでクエリを作成します。SQLは下記
INSERT INTO TEST SELECT A,B,C・・・ FROM TEST IN "C:\~\A.MDB"
※A,B,C・・・ SEQを除く全てのフィールド並びです。
上記クエリを実行します。
    • good
    • 1
この回答へのお礼

ご返答、ありがとうございました。
今回、テキストエディタが使用できない環境でした。
そのため、nda23様のご意見を参考に、以下の方法で実現いたしました。

(1)A.mdbで、TESTテーブルをテキスト形式でエクスポート。
(2)B.mdbで、ファイル→インポートで、インポートを行う。
(3)インポートの設定で、B.mdbのTESTテーブルにインポートするように指定。
(4)「テキスト インポート ウィザード」で「これで、データをインポートするための設定が終了しました。」の画面で、「設定」ボタンを押下する。
(5)項目一覧から、SQL(主キー)の「スキップ」をチェックし、「OK」を押下する。
(6)「テキスト インポート ウィザード」で「完了」ボタンを押下し、インポートを開始。

この方法で、オートナンバーで自動付番され、インポート出来ました。

お礼日時:2010/03/30 14:18

b.mdbにリンクテーブルを作って、


オートナンバー以外のフィールドを追加クエリにて追加。
時間がかかるのが心配なら、オートナンバーで範囲を指定し、
件数を確認しながら追加。
    • good
    • 0
この回答へのお礼

ご返答、ありがとうございました。
ご参考にし、試させていただきます。

お礼日時:2010/03/30 14:51

質問者の意図するところが良く判りません。


A.mdbのTESTテーブルが現在持っている主キーの値は変わってしまっても問題ないのでしょうか?
それならばA.mdbのTESTテーブルから主キーフィールドを削除してB.mdbのTESTテーブルにデータ追加すればよいのでは?
    • good
    • 0
この回答へのお礼

ご返答、ありがとうございました。
今回は、ちょっと特殊な仕様なのでテーブルインポート時に主キーの値は変わってもかまいません。
そういう考えがありましたか。参考にさせていただきます。

お礼日時:2010/03/30 14:09

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

関連するカテゴリからQ&Aを探す