アクセスのリレーションシップを削除せずにテーブルを置き換える方法
- アクセスのリレーションシップに関して、容量が大きくなるため別のテーブルで入力・検索を行いたい場合、テーブルを置き換える際にリレーションシップを削除せずに行う方法について教えてください。
- 現在、アクセスで使用しているデータベースの容量が大きくなってきたため、別のデータベースで入力・検索を行いたいと考えています。しかし、テーブルを置き換える際にリレーションシップを削除せずに行う方法が分からず困っています。
- アクセスで使用しているデータベースの容量が増えてきたため、別のデータベースで入力・検索を行うことにしました。しかし、テーブルを置き換える際にリレーションシップを削除せずに行う方法がわからず、作業が膨大になってしまいます。何か解決策はありませんか?
- ベストアンサー
アクセスのリレーションシップに関して
アクセスでDBを構築して業務で使用しているのですが、容量がかなり大きくなってきたのでデータと、フォーム等による入力・検索を別DBで実施したいと思っています。そこで、元DBをコピーしてコピー先のテーブルを全て元DBからのリンクにしようとしたのですが、リンクを貼った後にテーブル名を置き換えしようとするとリレーションシップを削除しろというメッセージがでてしまいます。下手くそなシステムで、後でリレーションシップを貼りまくっているので、いちいちリレーションシップ削除・再構築をしようとすると膨大な作業になってしまいます。どなかか、リレーションシップを削除せずにテーブルを置き換える方法をご存知ないでしょうか。
- mikawakko
- お礼率33% (4/12)
- その他(データベース)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
御疲れ様です 元DBとコピーDBがあるんですね。 コピーDBのテーブルをすべて削除し、元DBからテーブルをすべてリンクするのではいけないのですか? 見当違いでしたらすみませんm(_ _)m リレーションシップ退避・復元とかのツールなら... http://homepage1.nifty.com/tsware/index.htm
関連するQ&A
- Access ODBCからのリンクのリレーションシップ
教えてください。 今 Access2000を使ってDBを作っています。 なんとかODBCにテーブルを置いてリンクさせるところまで たどり着いたのですが、 そのテーブルを使ってリレーションシップを組もうと思うと 参照整合性他2つあるチェック項目がチェックできない 状態になってしまっています。 (参照整合性にチェックを入れたいのですが) なぜなのでしょうか? もうさっぱりわからず・・・ どなたか教えてください。
- ベストアンサー
- オフィス系ソフト
- マイクロソフト アクセス リレーションシップの扱い方について
よろしくお願いします。アクセスで作成したテーブル、例えばAとBには共通の番号があります。それぞれは各テーブル内で番号がいくつか重複しています。この番号により、リレーションシップの関連付け(参照整合性は行わず)を行った後、クエリで抽出したところ、ところどころ同じデータが発生して、膨大な量になってしまいます。参照整合性・フィールドの連鎖更新・レコードの連座削除をチェックして再度リレーションシップを作成しましたが、主テーブルで参照されている固有のインデックスが見つからないとのエラーメッセージが出ます。このテーブルA・Bを使用してデータが重複しないようにクエリで抽出する事はできますか。
- ベストアンサー
- その他(データベース)
- ACCESSのリレーションシップについての疑問
ACCESS初心者です。 ACCESS2002 OSはWindowsXP SP2です。 基本が分かっていないせいなのかもしれませんが、私には理解できない現象が起こっています。対応方法があれば教えていただくようお願いします。 ACCESSでデータ更新のフォームを作っています。 そのフォームは2・3日前に作ったもので、たとえばテーブルAを更新するためにマスターテーブルのBとCを参照しているような形になっています。このリレーションはクエリで指定してあります。 このフォームではクエリに対して更新する形になっています。 このフォームのデザインを編集しているときに「ツール」の「リレーションシップ」をクリックすると画面にはBとCだけが表示されます。 なぜメインのテーブルのAが表示されないのか?と思いながら、しょうがないので右クリックして「すべてのリレーションシップの表示」を押すと、驚いたことにDのテーブルが表示されました。 実はこのDというテーブルは以前に作ったAを作る前に使っていたAによく似たテーブルなのです。 当然、以前にはDとB・Cのリレーションも作っていましたが、今編集中のフォームではDは関係ありません。 リレーションシップの画面は不必要に広大なもので横に3スクロール分と縦にも5スクロール分くらいあって、その右下の端っこにD・B・Cのリレーションだけが表示されていて、それ以外はただただスペースがあるだけです。 なぜ肝心のA・B・Cのリレーションが表示されずD・B・Cのリレーションが表示されるのでしょう? 試しに今では不要であるDのテーブルを削除してみましたがリレーションシップではさすがにDは消えたもののB・Cが表示されるだけで、Aは出てきません。 そもそもACCESSにおけるリレーションシップというのは個々のフォーム内で定義されるものではないのですね?(根本的なことで申し訳ないのですが、買った2冊の本を見てもインターネットで探してもその辺の説明が見当たりませんでした) SQLであれば個々のSQL文で都度JOIN等の記述をすると思うのですが、ACCESSではデータベース全体の共通事項(?)としての定義になるのでしょうか? ACCESSは初心者で見当はずれな質問かもしれませんがどうかよろしくお願いします。
- ベストアンサー
- その他MS Office製品
- Accessのリレーションシップ
Access初心者です。 Access2010でデータベースを作っていて、行き詰ってしまいました。 テーブル1にフィールドABCDEFがあって、Aに主キーが付いています。(Aはテキスト型でフィールドサイズ10です。) テーブル2にはフィールドAGHがあり、Aに主キーが付いてます。(Aはテーブル1と同じです。) テーブル3にも同じくフィールドAIJがあり、Aに主キーが付いています。(Aはテーブル1と同じです。) テーブル1のフィールドAを主テーブルとし、テーブル2・3のフィールドAにリレーションを組んでいます。 この時のリレーションシップで参照整合性と連鎖更新と連鎖削除にチェックを入れ、種類が一対一になりました。 その後、テーブル1でレコードを追加しようとすると、「テーブル'2'にリレーションシップが設定されたレコードが必要なので、レコードの追加や変更を行うことができません。」と出ます。 これを解決する方法はどうするのか、お教えお願いします。 分かりにくい説明ですいません。
- ベストアンサー
- その他MS Office製品
- Accessリレーションシップについて
お世話になります。 Access2010 普段はクエリにて、いくつかのテーブルやクエリを紐づけているのですが リレーションシップの設定は今までやったことがありません。 ネットで調べて、 ・「参照整合性」にチェックを入れることにより、1対多の多側で1側に存在 しないIDで登録しようとするとエラーになる。 →間違ったデータが入力されるのを防ぐ。 ・多側でリレーションシップが設定されているフィールドに値を入力しない ことは可能。但し、当該フィールドの「値要求」プロパティを"はい"に した場合は、入力しないとエラーになる。 ・「フィールドの連鎖更新」にチェックを入れると、1側で変更したものが 多側でも自動的に変更される。 ・「レコードの連鎖削除」にチェックを入れると、1側で削除した場合、 多側で該当するデータをもつレコードが自動的に削除される。 上記については実際に試してみて動きを確認しました。 ※上記の認識違いや、もっと大事なことがあればご指摘、ご教示頂けると 幸いです。 今までは、こっちのテーブルで削除したらこっちのテーブルでも削除 みたいなことをやってたので、便利だとは思うのですが。。 以下のテーブルでリレーションシップの設定を行ったとします。 売上テーブル ID 商品 担当者コード 1 AAAAA 3 2 BBBBB 1 3 AAAAA 1 4 CCCCC 2 5 CCCCC 3 担当者テーブル 担当者コード 担当者名 1 担当者A 2 担当者B 3 担当者C 売上テーブルの担当者コードと、担当者テーブルの 担当者コードでリレーションの設定を行い、「参照整合性」及び 「レコードの連鎖削除」にチェックを入れたとします。 例えばフォーム上にリストボックスを設置し ID 商品 担当者名 を表示し、リストボックス上で選択されたレコードを、削除ボタンを 押したら、そのレコードが削除されるプログラムを作成します。 ※選択されたレコードのIDを取得し削除クエリで削除。 リストボックスでID:5のレコードを選択し、削除ボタンを押した場合 売上テーブルのID:5のレコードを削除しても、担当者テーブルから 担当者コード:3のレコードは削除されない・・という認識でよろしい でしょうか。 ※要するに、1対多の多側で削除されても1側には影響無し。 同様にリストボックスでID:5のレコードを選択し、削除ボタンを押したときに 担当者コード:3を取得し、まずは担当者テーブルで担当者コード:3の レコードを削除すると、併せて売上テーブルのID:1及びID:5が削除 される。 要するに、上記のケースで「レコードの連鎖削除」の設定を行うと 本来削除すべきID:5以外のレコード(ID:1)まで削除されてしまう ことになる?? ※そもそも例がちょっと悪かったかもしれません。。 何が言いたいかというと、「フィールドの連鎖更新」「レコードの 連鎖削除」は、よーく考えて設定しないと意図しないところまで 更新されたり削除されてしまうのかなと。。なので、設定することに よって、プログラムの作りも変わってきてしまうことになるので しょうか。 理解不足で質問自体もモヤモヤしたものになってしまいましたが、 ご教示のほど、宜しくお願い致します。
- 締切済み
- オフィス系ソフト
- リレーションシップと外部キー制約について
■最終的にやりたいこと ・なるべくコード(SELECT文など)を見ずに、「DB」「テーブル定義者」「ER図」等からテーブル間の関係性を把握したい ■具体例 ・投稿一覧。「userテーブル」「postテーブル」 ・「postテーブル」の「user_id」カラムは、「userテーブル」の「id」カラムに対応 ※簡易な場合はある程度想像は付くのですが、ちょっと複雑な構成になると途端に苦労するので、何か良い方法はないかと思い、質問しました ■質問 ◆「リレーションシップを組む」際、「外部キー制約」はかけるのでしょうか? 例えば、上記「投稿一覧」DBを構築する際では、どうするのでしょうか? 1.普通、「外部キー制約」をかける 2.普通、「外部キー制約」をかけない 3.どちらでも良い ◆「外部キー制約」は何の為にかけるのでしょうか? ・「SELECT&JOIN」でデータ取得出来るのであれば、「外部キー制約」と「リレーションシップ構築」に関係性はないと思うのですが、そういう認識で合っているでしょうか? ・参照先データが削除されたら整合性がとれなくなる場合のみかけるものでしょうか? ◆「リレーションシップを確認」する目的で、「外部キー制約」をかけても良いのでしょうか? ・「データ削除の整合性」ではなく、「リレーションシップを確認」する目的で外部キー制約」をかけても良いのでしょうか? ◆「外部キー制約」以外に、「リレーションシップを確認」する方法はあるのでしょうか? ・コード(SELECT文など)を見ずに、テーブル間の「リレーションシップを確認」する方法としては、「外部キー制約」以外に何かあるのでしょうか? ・そもそも、「外部キー制約確認」=「リレーションシップ確認」という考えは正しいのでしょうか?
- ベストアンサー
- MySQL
- データベース分割ツール後のリレーションシップ
アクセスのmdbファイルをデータベース分割ツールでテーブルとその他に分けたら リレーションシップが全部消えてしまいました。 これはリレーションシップを設定しない方がいいということでしょうか? テーブルのみのBe.Mdbファイルの方はまたリレーションシップを組みなおすことは可能でしたが 元のmdbファイルの方のリンクテーブルでは最初のようなリレーションシップを作ることができません。 私のやり方がおかしいのでしょうか? (access2003です)
- ベストアンサー
- オフィス系ソフト
- ACCESSのサブフォームについて
ACCESS-2000を使用しております。 リレーションシップを作成し、抽出されたデータをリストボックスに 表示されるようにしました。 そのリストボックスを他のフォームにサブフォームとして挿入し、 メインフォームとリンクをさせたいのですがこれは可能なのでしょうか? リストボックスに表示されるデータの元になっている2つのテーブルと、 リンクを張りたいメインフォームのデータテーブル(1つ)間にリレー ションシップを作成すればよいのでしょうか。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- アクセスのテーブルにリンクできなくしたい
アクセス97です。 DBのテーブルを見れないようにはできたのですが、 他に別のDBを作成し、元のDBのテーブルにリンクしてしまうと いともたやすくテーブルを見ることができてしまいます。 元のDBには、パスワードやグループファイルで権限を付けたくないです。 テーブルのリンクを許さない方法が何か無いでしょうか? また、テーブルが誰かによってリンクされているかどうかが 分かる方法ってあるでしょうか? よろしくお願い致します。
- 締切済み
- その他(データベース)
- MS-Access2000 一対多のリレーションシップを含むレポートの作成方法
Accessは初心者なのに、 会社であるDBを作るように言われてしまいました。 その中で以下のようなレポートを作りたいと考えています。 - 実施ID 実施日 団体名 担当業者・・ 1 1/1 A あ 2 2/2 B い う 3 3/3 C え 4 4/4 D い - のように、一度の実施に対して複数の担当業者がいる場合に、 2番目以降の担当業者名が一行下に出てくるようにしたいです。 もとになるテーブルは以下の3つ。 - [実施table] 実施ID 実施日 団体名 ・・ 1 1/1 A 2 2/2 B 3 3/3 C 4 4/4 D [担当業者リンクtable] 実施ID 担当業者 1 あ 2 い 2 う 3 え 4 い [業者情報table] 業者名 住所 電話番号・・・ あ 北区 1234-5678 い 南区 2345-6789 う 西区 3456-7890 え 東区 4567-8901 それらのリレーションは (1)実施tableの実施ID (一側)- (多側)担当業者リンクtableの実施ID (2)業者情報tableの業者名(一側)-(多側)担当業者リンクtableの担当業者 となっています。 レポート作成ウィザードを利用して、必要なフィールドを含んだ レポートを作成すると、以下のようなレポートが作成されてしまいます。 - 実施ID 実施日 団体名 担当業者・・・ 1 1/1 A あ 2 2/2 B い 2 2/2 B う 3 3/3 C え 4 4/4 D い - 個人的にDBのレポートとしては これで十分だと思うのですが 「文書の書式」にこだわる上司が納得しなくて(^^; よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
復元ツールを使用することで出来ました!こんなツールを開発されている方がいるんですね。大変助かりました。ありがとうございました