- ベストアンサー
Access リレーションシップの設定・解除
2種類のクエリーをテーブルにインポートさせた後、リーレーションシップを貼るのに マクロかモジュールで自動化させていのですが? リレーションシップの設定・解除を行う方法(マクロかモジュール)を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
浅学で自動で行うニーズが分かりませんので教えて下さい。 「access createrelation vba」でググると結構ヒットしますので、必要とする方が居るのですね。 http://www.geocities.jp/cbc_vbnet/tips/relation.html http://www.tek-tips.com/viewthread.cfm?qid=1231821&page=7
その他の回答 (2)
- piroin654
- ベストアンサー率75% (692/917)
まず、テーブル同士のリレーションが設定 してなくてもクエリでリレーションシップ を張った場合にテーブルのリレーションが システムに設定されるかと言えば、設定は されません。 クエリで取ってきたデータにはシステムのリレー ションシップは含まれていません。つまり、クエリ は結果セットであって、テーブルではありません。 テーブルならばテーブルそのものをインポート し、ついでにコードでリレーションシップもイン ポートできます。 クエリのデータの元になっているテーブルをそのまま インポートするならばコードでリレーションシップも コピーできます。 たとえクエリでデータをインポートしてもデータを コピーしたテーブル同士のリレーションシップは手動 で行なうようになります。 以前、テーブルのインポートと同時にリレーションシップ もインポートする質問に回答したことがあります。 http://oshiete1.watch.impress.co.jp/qa5952603.html http://oshiete1.watch.impress.co.jp/qa5960598.html もし、必要ならばクエリ、テーブル、リレーションシップを セットで取ってくればいいのではないですか。 #1の方のいわれていることにプラスして、Accessで リレーションシップが必要になるのはごくまれです。 リレーションシップが効いてくるのは、主テーブルと キーで紐付けられた明細テーブルで、必要のない データを主テーブルのレコードを削除すれば それに伴い、明細テーブルのレコードが削除される 連鎖削除くらいです。 とは言っても、テーブルでサブデータシートを 設定すればデータを階層的に見ることができる というメリットはあります。
お礼
ありがとうございました。参考になりました。 当初、主TBLと明細TBLを紐付け(他に幾つかのフィールドのコードとそれに対応した用語TBLも参照)検索・照会(フォーム)を行うのにクエリーとサブフォームで行っておりましたが、明細レコードの数が多いため時間がかかっていました。少しでも早くするためにリレーションを張り対応しました。 他に良い方法が有ればまたお聞かせください。
- yorozu_ya
- ベストアンサー率54% (76/140)
テーブルは都度新規作成するのですか? それとも既存のテーブルにインポートするのですか? リレーションシップを設定する必要があるのですか? (設定しないと、どのような不都合があると認識していますか?)
お礼
ありがとうございました。参考になりました。 当初、主TBLと明細TBLを紐付け(他に幾つかのフィールドのコードとそれに対応した用語TBLも参照)検索・照会(フォーム)を行うのにクエリーとサブフォームで行っておりましたが、明細レコードの数が多いため時間がかかっていました。少しでも早くするためにリレーションを張り対応しました。 主・明細TBL共、日々増減するため、主TBL(用語付与)クエリーと明細TBL(用語付与)を日々インポートしています。
お礼
ありがとうございました。参考になりました。 当初、主TBLと明細TBLを紐付け(他に幾つかのフィールドのコードとそれに対応した用語TBLも参照)検索・照会(フォーム)を行うのにクエリーとサブフォームで行っておりましたが、明細レコードの数が多いため時間がかかっていました。少しでも早くするためにリレーションを張り対応しました。 主・明細TBL共、日々増減するため、主TBL(用語付与)クエリーと明細TBL(用語付与)を日々インポートしています。 インポート後にリレーションを張るところまでモジュール化させたくて。。。