|
>そのテーブルだけ
>別のAccessデータファイルとして保存するVBAをつくって、
>フォームのボタンで自動化したいのです。
あまり感心しませんね。
データベースにおける基本的ルールとして、一事実一箇所というルールがあります。
これは、データの格納は一箇所だけにしろということです。
例えば、顧客管理のデータベースにおいて、顧客の住所は、一箇所だけに格納しろということです。
言い換えれば、顧客のデータをコピーしてあちこちのテーブルに持つようなことはしてはいけない
ということです。
データをコピーしてあちこちのテーブルに格納しておくと、
最新のデータ、あるいは正しいデータがどれなのかわからなくなってしまうからです。
御希望のことは、一事実一箇所の原則に反することになってしまうので、避けるべきです。
では、どうするかですが、
テーブルをコピーして新ファイルに保存するのではなく、
新ファイルでは、当該テーブルをリンクテーブルとして使うべきです。
例えば、例えば、元データが格納されている甲.accdbファイルがあり、
このうちのAテーブルとBテーブルだけを使って、乙.accdbファイルで処理をしたいという場合、
乙.accdbファイルにおいては、AテーブルとBテーブルをリンクテーブルとすべきだということです。
リンクテーブルとすることが不可能である場合であって初めて、
テーブルのコピーを考えることになります。
その場合は、予め、甲.accdbファイルのAテーブルとBテーブルと同じ構造のテーブルを、
乙.accdbファイルに作っておきます。
なお、乙.accdbファイルにおいては、それぞれaテーブルとbテーブルだとします。
そして、フォームに設けたコマンドボタンのクリックイベントで、
aテーブルの全レコード削除、
bテーブルの全レコード削除、
Aテーブルからaテーブルへの追加クエリ、
Bテーブルからbテーブルへの追加クエリ
を順次実行します。
|
|