|
▼小僧 さん:
>取込先のテーブルを右クリックして「コピー」
>データベースウィンドウの空白の所で
>(中略)
>毎回テーブルを消したり作ったりするのは
>あまりAccessに良くない(ゴミが残ったりする)ので
>中のレコードだけ消したり追加したりするのが良いかと思われます。
わかりやすく教えていただきありがとうございます。
>> クエリにいれて比較して削除というのがありました
>
>Excel のデータをそのままクエリで比較するのは
(中略)
>まずはワークテーブルに取り込む所まで、
>それができましたら「比較してメッセージを…」の箇所を
>作られてみてはいかがでしょうか。
結果としましては、データの量が多いので(数百万単位)
手でコピペはできなかったので、
DoCmd.DeleteObject , W_ワークテーブル
DoCmd.CopyObject , "W_ワークテーブル", acTable, tblname
ワークテーブル内のデータをまずすべて消し、取引先のテーブルを
そのままコピーという感じになりました。
インポート文は元から作成してあったので、(かなり苦労しました。。。)
上の文を組み込みました。
ここから比較にはいりたいのですが、
やりかたはいろいろあるとおもうのですが、
・ワークテーブルを初期化
・取引先のテーブルをワークテーブルにコピー
・ワークテーブルに今回取り込みたいデータをインポート
・重複チェック(ここで重複があればメッセージ)
・上書きならワークシートないでまず上書き
・ワークシートないのデータを取引先テーブルに貼り付け(ここはそのまま上書き)
みたいなかんじでいいんでしょうか?
取引先データをこわさないようにするみたいなかんじに
データを取り込むみたいなかんじになりますが・・・
よろしくお願いします。
|
|