|
▼みう さん:
こんにちは。
まず…。
前回の投稿で書くのを忘れてしまったのですが、
Accessのファイルは壊れやすいです。
特に今回の様に試行錯誤しながら色々操作を行っていると
応答がなくなってしまったり、
その為に強制終了をせざるを得なかったりと
ファイルが壊れる要因が多々ありえます。
必ず元ファイルのバックアップをとっておいて下さいね。
また、これも初めの方の投稿で書いておくべきでしたが
みうさんがお使いのPCの OS、Accessのバージョンによって
VBAのコードが変わってくる場合もあります。
ご質問の際には OS や Access のバージョンを明記する様にしましょう。
>・ワークテーブルを初期化
>・取引先のテーブルをワークテーブルにコピー
>・ワークテーブルに今回取り込みたいデータをインポート
>・重複チェック(ここで重複があればメッセージ)
>・上書きならワークシートないでまず上書き
>・ワークシートないのデータを取引先テーブルに貼り付け(ここはそのまま上書き)
・W_ワークテーブルの初期化
・W_ワークテーブルに今回取り込みたいデータをインポート
・W_ワークテーブルと本来インポートしたいテーブルの比較
となります。
前回の投稿で述べたのですが、
重複レコードが複数あった場合
「上書き」か「キャンセル」か選ばせるとの事ですが、
A) 1行ずつ確認のメッセージ?
B) 全体に対しての「上書き」「キャンセル」の処理?
また B) であるのならば
重複しているレコードのみキャンセルなのか、
それとも全レコードの取り込みをキャンセルするのかによって
仕様が変わってきますね。
その後
・上書きの場合は取りこみ先テーブルから重複となるレコードを削除
キャンセルの場合は仕様によって…。
・ワークテーブルのデータを取り込み先テーブルへインポート
となりますね。
> データの量が多いので(数百万単位)
データ量が多いとプログラムの実行に時間も掛かってしまうので
まずは実験の為に数千レコードぐらいに減らした
実験用のMDBファイル、CSVファイルを作って
うまく行った後に本番データで試してみてはいかがでしょうか。
上記のキャンセル仕様に関するご回答と、
最終的に取り込みたいテーブルの名前、
重複かどうかを判断するフィールドの名前などあると
次回の回答が付けやすくなると思われます。
|
|