• ベストアンサー

Access リレーションシップの設定・解除

2種類のクエリーをテーブルにインポートさせた後、リーレーションシップを貼るのに マクロかモジュールで自動化させていのですが? リレーションシップの設定・解除を行う方法(マクロかモジュール)を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

浅学で自動で行うニーズが分かりませんので教えて下さい。 「access createrelation vba」でググると結構ヒットしますので、必要とする方が居るのですね。 http://www.geocities.jp/cbc_vbnet/tips/relation.html http://www.tek-tips.com/viewthread.cfm?qid=1231821&page=7

shige-naka
質問者

お礼

ありがとうございました。参考になりました。 当初、主TBLと明細TBLを紐付け(他に幾つかのフィールドのコードとそれに対応した用語TBLも参照)検索・照会(フォーム)を行うのにクエリーとサブフォームで行っておりましたが、明細レコードの数が多いため時間がかかっていました。少しでも早くするためにリレーションを張り対応しました。 主・明細TBL共、日々増減するため、主TBL(用語付与)クエリーと明細TBL(用語付与)を日々インポートしています。 インポート後にリレーションを張るところまでモジュール化させたくて。。。

その他の回答 (2)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

まず、テーブル同士のリレーションが設定 してなくてもクエリでリレーションシップ を張った場合にテーブルのリレーションが システムに設定されるかと言えば、設定は されません。 クエリで取ってきたデータにはシステムのリレー ションシップは含まれていません。つまり、クエリ は結果セットであって、テーブルではありません。 テーブルならばテーブルそのものをインポート し、ついでにコードでリレーションシップもイン ポートできます。 クエリのデータの元になっているテーブルをそのまま インポートするならばコードでリレーションシップも コピーできます。 たとえクエリでデータをインポートしてもデータを コピーしたテーブル同士のリレーションシップは手動 で行なうようになります。 以前、テーブルのインポートと同時にリレーションシップ もインポートする質問に回答したことがあります。 http://oshiete1.watch.impress.co.jp/qa5952603.html http://oshiete1.watch.impress.co.jp/qa5960598.html もし、必要ならばクエリ、テーブル、リレーションシップを セットで取ってくればいいのではないですか。 #1の方のいわれていることにプラスして、Accessで リレーションシップが必要になるのはごくまれです。 リレーションシップが効いてくるのは、主テーブルと キーで紐付けられた明細テーブルで、必要のない データを主テーブルのレコードを削除すれば それに伴い、明細テーブルのレコードが削除される 連鎖削除くらいです。 とは言っても、テーブルでサブデータシートを 設定すればデータを階層的に見ることができる というメリットはあります。

shige-naka
質問者

お礼

ありがとうございました。参考になりました。 当初、主TBLと明細TBLを紐付け(他に幾つかのフィールドのコードとそれに対応した用語TBLも参照)検索・照会(フォーム)を行うのにクエリーとサブフォームで行っておりましたが、明細レコードの数が多いため時間がかかっていました。少しでも早くするためにリレーションを張り対応しました。 他に良い方法が有ればまたお聞かせください。

  • yorozu_ya
  • ベストアンサー率54% (76/140)
回答No.1

テーブルは都度新規作成するのですか? それとも既存のテーブルにインポートするのですか? リレーションシップを設定する必要があるのですか? (設定しないと、どのような不都合があると認識していますか?)

shige-naka
質問者

お礼

ありがとうございました。参考になりました。 当初、主TBLと明細TBLを紐付け(他に幾つかのフィールドのコードとそれに対応した用語TBLも参照)検索・照会(フォーム)を行うのにクエリーとサブフォームで行っておりましたが、明細レコードの数が多いため時間がかかっていました。少しでも早くするためにリレーションを張り対応しました。 主・明細TBL共、日々増減するため、主TBL(用語付与)クエリーと明細TBL(用語付与)を日々インポートしています。

関連するQ&A

  • アクセス2000のルックアップ設定後のリレーションシップ

    アクセス2000のルックアップを設定後のリレーションシップが自動で作成されることは理解しています。テーブル4つの内1つ(データの流れ的に最後に相当)に設定しました。リレーションシップ線が4つできてしまい、テーブル名がテーブル名に1、2、3と増えてしまいました。邪魔なのでリレーションシップから「テーブルを表示しない」を押し消しても作業してからリレーションシップを確認すると再度表示されてしまいます。また解除(テーブルをデザインモードにして、標準横のルックアップタブを押し、表示コントロールをテキストにする)をしてもリレーションシップの線が消えません。なにか操作方法がおかしいのでしょうか?機会の誤動作でしょうか?

  • ACCESSのリレーションシップ設定について

    お世話になっております。 添付画像にありますように、3つのテーブルからデータを抽出する クエリーを作成したいのですが、リレーションシップをどのように 設定すればよいか教えてください。 いろいろ試したのですが、以下のような問題が発生し、困っています。 ・クエリーに新規データを入力できない。もしくは、既存データを修正できない。 ・クエリーに誤った組み合わせが抽出され、データ数が3倍くらいなる。 よろしくお願いします。

  • Access(リレーションシップについて) 

     Win XP Office 2003 Accessを勉強中です。  デザインビューでクエリを作成するときに、関連するテーブルを表示させると自動的に「結合プロパティ」の線が表示されますが、 この表示で自動的に「1対多」を表示する時としない時がありますが、これは何故でしょうか。  これはどこかから設定をしてやるのでしょうか。  また、同じような線としてメニュバーから「リレーションシップ」を表示させることが出来ますが、 内容的には「結合プロパティ」と同じものですが、これは「リレーションシップ」とはどのようなに使い分けるものでしょうか。

  • アクセスで設定したリレーションシップを取り消すにはどうすればいいのでしょう

    アクセスで設定したリレーションシップを取り消すにはどうすればいいのでしょう?リレーションシップの設定に使ったサンプルをもう一度リレーションシップの設定の練習につかおうとすれば、リレーションシップを解除しておかなければならないからです。

  • アクセスリレーションシップについて

    こんにちは。 リレーションシップでテーブルとクエリをつないでいます。テーブルは5つあり、その中から例えば名前を入れて検索を掛けると、その5つのテーブルから該当するものを抽出したいのですが、どのようにしたらいいでしょうか?? 一応テーブルをす繋げるところまでは出来ていますので、検索して抽出をかける方法を教えて頂ければと思います。 説明が不十分かもしれませんが、ご教授願います!

  • アクセスのリレーションシップとクエリ

    私は、アクセスの初心者です。なので、難しいことはよく分からないのですが、アクセスではある1つのフィールドをキーにしてくっつけたりすることができるじゃないですか?そのキーを設定したりするのはリレーションシップでも、クエリでも同じような感じで行うと思うのですが、その2つの違いはクエリはそれをテーブルとして表示できるのに対して、リレーションシップはただ定義するしかできずテーブルとして表示はできないのでしょうか? あと、クエリとかである条件で抽出したテーブルの1つのフィールドのSUMを出したいのですがどういった条件式を書けばいいのでしょうか? なにぶん、初心者ゆえに質問が分かりにくいと思いますが、どうかよろしくお願いします。

  • Access 複数テーブルのリレーションシップ

    Access2013  4種類の名簿をそれぞれのテーブル(4種類)で管理してありますが、 同じ方(氏名)が4種類の名簿全部には無く、2つや3つの名簿にばらばらにあります。  この4つのテーブルを同時に表示し入力できる分割フォームをつくりたいのですが、 この際の、4つテーブルの氏名をリレーションシップする結合プロパティの設定方法を教えて下さい。 あるいは、クエリのそれぞれのテーブルのフィールド(氏名)の抽出条件になんと書き入れたらよいか。教えて下さい。 宜しくお願いします

  • MS ACCESSにおいてのリレーションシップ設定

    ACCESSを使用してシステムを構築しているのですが、テーブル間のリレーションシップについて疑問があります。 リレーションシップを設定することにより、データベースの整合性を得ることができますが、その他のメリットはあるのでしょうか? ある文献では検索時間の短縮になるとあったのですが、本当なのでしょうか? 通常の表結合クエリーと参照整合性以外の違いはどのようなものでしょうか? 回答をお願いします。

  • 追加質問です。リレーションシップの設定方法?

    先ほど質問したばかりなのですが、クエリで生年月日から年齢を出すDateDiff関数を設定してクエリの中ではできたのですが、テーブル、フォーム内ではできません。やはり、リレーションシップの設定の仕方が悪いのでしょうか?それとも、テーブル、フォームのそれぞれで関数を設定する方法があるのでしょうか?教えてください。よろしくお願いします。。。

  • アクセスでのリレーションシップの設定方法を教えてください。

    こんばんは。アクセス初心者です。フォームで入力して、テーブル、クエリですぐに反映させるにはどうしたらよいのでしょうか?私が今作成しようとしているデータベースは次のようなものです。  病院にて(1)患者マスター(患者IDと名前、年齢、性別など)のテーブル、クエリ、フォーム。(2)検査件数(患者ID、名前、年齢、検査材料、検査依頼日、発生した細菌など)のテーブル、クエリ、フォーム。 これらは作ったのですが、リレーションシップの仕方がよく解らないのでここから進めません。例えば、(2)検査件数のフォームで患者IDを入力したら自動的に名前、年齢、性別が入力されるようにしたいのですが。 よろしくおねがいします。