異なるDB間の関連レコードの参照方法

このQ&Aのポイント
  • MS Access2000 Window98を使用して異なるDB間の関連レコードの参照方法について教えてください。
  • 異なるDB間で関連するレコードをボタンで開く方法や、関連付ける方法について知りたいです。
  • 異なるDB間の関連付け作業について、効果的な方法があれば教えてください。
回答を見る
  • ベストアンサー

2つの異なったDB間の関連レコードの参照

MS Access2000 Window98を使用しています。 2つのDBがあります。 (1)1つは会計DB(A)でそこには(a)Account名(1200のレコード有り)というフィールドがあります。もう一つは住所録DB(B)でそこには(b1)組織名というフィールドと(b2)個人名という2種類のフィールドがあります。(a)には(b1)が対応することもあれば(b2)が関連する事もあります。この時、DB(A)使用中に(a)に関連する別のDB(B)の(b1)或いは(b2)をボタン一つで開かせる(呼び込ませる)ようにしたいと思っています。 (2)両方のDBに共通するフィールド名を新しく作って(ナンバー・フィールドが良いと思いますが…?)それぞれ該当するレコード同士を関連付ける作業をする事になりそうです。手間はかかりますが一件一件やっていく他無いと思っています。その場合、新しく作ったナンバーフィールドには同じ番号は使えないわけですから、フィールド同士新しく関連付けを作ったら次の関連付けは”自動的”に新しいナンバーが振られるようになればベストです。 (3)同様にDB(B)の (b1)或いは(b2)からボタン一つで関連するDB(A)の(a)を一元的に呼び込みたいと思います。 (1)或いは(2)(3)につき一番効果的な方法をご存知の方がおられれば是非教えて頂きたいのですが…。宜しくお願いします。

  • jsota
  • お礼率23% (11/47)

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

  • ベストアンサー
  • Tibian
  • ベストアンサー率15% (30/188)
回答No.1

(1)に関しては元ファイルがなかったら手入力しかないと思います。 元ファイルがエクセルであれば2列追加して、VBAで自動的に(A)(B)に値をいれていけばどうでしょう? ***元ファイル*** (Account名)(組織名)(個人名)(AccountNo)(OrgNo) ok Okweb 1 1 ****(A)**** (AccountNo)(Account名) 1 ok ****(B)**** (OrgNo)(組織名)(個人名) 1 Okweb

jsota
質問者

補足

回答有難うございます。 "元"ファイルと言う意味が良く分かりませんが、 エクセルにAccessのデータをエクスポート(リンク?)して、エクセルにてA-Bのmdbの関係フィールドを整理した後、その内容をAccessに反映させる、という方法なのでしょうか? 可能なら試したいと思いますが、私は今ひとつVBAが分かりませんので、VBAの内容を解説していただけないでしょうか?

関連するQ&A

  • 異なるDB間の異なるテーブルの特定レコード間のリンクは可能か?

    Window98, Access2000を使用しています。 現在(1)住所録DBと(2)家計簿DBをAccessにて作成しています。家計簿DBは長年使っていますのでかなりの情報量です。(1)の住所録DBは先日から作り始めたばかりです。そこで質問させていただきたいのですが、(2)の家計簿DBにあるAccount名と住所録DBにある会社名とリンクをさせたいのですがどのようにしたらよいのでしょうか? 外部テーブルとしてリンクさせるテーブルを新たに新規Account名として追加して家計簿DBにつくることは出来ますが、完全な目的達成の問題点として、 1)家計簿DB内にあるAccount名の数は1000件を超えていますが、そのそれぞれのAccount名テーブルはかなり簡素なものなので、そのテーブル構造及びフィールド(住所、担当者(個人名)、交信情報(メモ))やそれぞれのリンク構造は住所録DBを使いたい。但し、1000件以上のAccount内容全てにその詳細情報は不要で、家計簿DBの特定のAccount名につき住所録DBの会社テーブルにある特定のレコードとリンクさせ、内容を充実させたい。即ち異なるDB間で特定のテーブル内にある特定のレコード間のリンクは可能か否か? 2)家計簿DB内のAccount名は会社名もあれば個人名もあります。一方住所録DBには、家計簿DBのAccount名テーブルの該当リンク先テーブルとして、会社名は (a)会社テーブル、個人の場合は (b)担当者(個人)テーブルのように2種類のテーブルが存在していますが、それぞれ該当レコードにリンクさせる事は可能か? 上記1)、2)に付き技術的可能性の可否について、或いは目的達成のためのアイデアが頂ければ喜びます。宜しくお願いします。

  • AS/400のレコードのコピー方法について

    AS/400のレコードのコピー方法について AS/400で管理している1つの物理ファイル(DB)から別の物理ファイルにデータをコピーする場合についての質問です。 現状、テーブル[A]と[B]が存在し、レコード様式や各フィールドなどは全く同じです。[A]をコピーして[B]を作った状態です。 この状態で[A]から一部のレコードを抽出して[B]にコピーをします。 その後、[B]でレコードを加工し、上記作業で[B]にコピーしなかった残りの[A]のレコードをコピーしたいと思います。 結果的に、最初のコピー作業で[B]にコピーされたレコード以外は件数も内容も全く同じ2つの物理ファイルになるという状況です。 ここで、解らないのですが、2回目の[A]から[B]へのコピーをコマンドで行う事はできないでしょうか? CPYF コマンドを使用して、MBROPT(*ADD) にすればできそうだと思ったのですが、重複レコード(最初に[B]にコピーしたレコード)以外をコピーするという項目が見つからず困っております。 INCREL を使用するのかとも思いましたが、比較値にフィールド名を指定する事ができないため不可能です。 RPG3やCLを使えばできそうではあると思うのですが、この程度の機能がAS/400に基本機能として備わっていないとは思えずに調べていたのですが、どうしても見つかりません。 アドバイスをいただけると幸いです。 以上、よろしくお願いいたします。

  • ACCESS 以下のようなレコードを抽出するSQL

    ACCESSのデータベースで あるフィールド(フィールドAとします)の値に対して、 別のフィールド(フィールドBとします)の値が1つに決まる データベースがあるとします。 例えば、フィールドAの値が1のレコードは、 どのレコードもフィールドBの値はaである。など このようなデータベースでこのような関係になっていないレコード 例えば、フィールドAの値が1のレコードの中に フィールドBの値がaであるレコードと フィールドBの値がbであるレコードがある。など を抽出するSQLはどのように記述すればよいでしょうか。 テーブル名はTABEL1とします。 次の2つのケースでお願いします。 (1)フィールドAの値が異なればフィールドBの値が異なる場合 例えば、フィールドAの値が1で、フィールドBの値がaであるレコードが ある時、フィールドAの値が1でないレコードの中には、   フィールドBの値がaであるレコードが存在しない場合   (2)フィールドAの値が異なるがフィールドBの値が同じこともある場合 例えば、フィールドAの値が1で、フィールドBの値がaであるレコードが あっても、フィールドAの値が1でないレコードの中にも、   フィールドBの値がaであるレコードが存在する場合 【回答例】(ただし、1,a,bなどの具体的な値は使わないこと) ・フィールドAの値が1のレコードを表示する例 SELECT * FROM TABLE1 WHERE フィールドA=1; ・フィールドAの値が1でフィールドBの値がaのレコードを表示する例 SELECT * FROM TABLE1 WHERE フィールドA=1 AND フィールドB='a'; ・フィールドAの値が1でフィールドBの値がaのレコードと  フィールドAの値が1でフィールドBの値がbのレコードを表示する例 SELECT * FROM TABLE1 WHERE (フィールドA=1 AND フィールドB='a') OR (フィールドA=1 AND フィールドB='b'); この目的は、データベースに問題があり、 問題となっているレコードを見つけて直したいのです。 よろしくお願いします。

  • Access2003の更新クエリ、レコードの更新欄のフィールド名を自動的に入力するには?

    AとBという2つのテーブルが、全く同じフィールドを30個持っています。 AとBでIDが同一のモノのみ、AにBのデータを丸々更新したいのですが [B].[フィールド名1]というように、IDを除いた残り29個のレコードの更新の欄に 手入力する方法で現在行っています。 追加クエリなどだとフィールドが同じ場合は自動的にレコードの追加欄にフィールド名が現れるのですが 同様に更新クエリでもフィールド名を自動的に出す方法はありますか? 現在上記のような更新クエリを10件以上新規で作成しなければならないのですが 各件に29個も手入力で行うのが非常に面倒でなりません。 やはりSQL等で仕組んでいくようにするのでしょうか?

  • ACCESSで一括レコード更新

    あるテーブルのレコードを、別のテーブルのレコードで更新したいです。具体的には、 二つのテーブルは同じフィールドを持っています。 フィールド名はID、名前、住所、電話で構成されています。 テーブルA  001 山田 東京 123456  002 田口 千葉 234567  003 鈴木 埼玉 345678  004 斉藤 佐賀 456789  005 上野 大阪 567890 テーブルB  003 鈴木 長野 345678  004 斉藤 佐賀 890123  008 野口 京都 090909 テーブルAとBでIDが一致するレコードだけテーブルAのレコード をそっくり入れ替えるにはどうしたらいいでしょうか。 この場合、003と004のレコードだけ更新します。 テーブルAのIDは主キーでオートナンバー型になっています。

  • MySQLで別テーブルを参照し、レコードを消したい

    お世話になります。MySQL4のデータベース上に2つのテーブルがあるのですが、 片方のテーブル(a)にあるフィールド(b_id)の値を参照し、もう片方のテーブル(b)のレコードを消していきたいのです。 具体的には以下のようなテーブル(a)とテーブル(b)があります。 TBL: a =========================== id    b_id    category =========================== 0     1       3 --------------------------- 1     2       1 --------------------------- 2     3       2 --------------------------- 3     4       2 --------------------------- TBL: b =========================== id    name    price =========================== 0    goodsA   1,000 --------------------------- 1    goodsB   500 --------------------------- 2    goodsC   250 --------------------------- 3    goodsD   2,500 --------------------------- 4    goodsE    1,800 --------------------------- やりたいことは、テーブル(a)の「category」フィールドが「2」以外であれば、 そのレコードの「b_id」にある数値を「id」にもつ、テーブル(b)のレコードを消していきたいのです。 上記の例だと、テーブル(a)のid「0」と「1」がcategoryに「2」以外を持っています。 この2つのレコードのb_idは「1」と「2」ですので、テーブル(b)のid「1」と「2」を消したいと思っています。 SQLについて知識がなく、困っています。どなたかご存知の方がいらっしゃいましたら、お知恵をお貸しください。 よろしくお願いします。

  • 前レコードを参照するには

    お世話になります。 早急に教えていただきたいのですが例えば下記のようなレコードの場合ですが     A     B     C      D     E 1  No.    履歴  最新フラグ  商品   コード 2 1001    1     0     りんご    99    3 1001    2     0     りんご    99 4 1001    3     1     りんご    99 コードに99が入っているもので最新フラグがたっているレコードの前の履歴のレコードを別シートに表示させていきたいのですがどのように関数を組めばよいのかわかりません。 ご教授くださいますようお願いします。

  • WEB→DBの作成について

    WEB→DBの作成について 趣味でHPを作成するレベルで以下機能を作成する事になり、調べてみましたが行き詰まりました。 項目が多いのですが「ここは知ってる」という所だけでも構いません。ぜひお助け頂けませんでしょうか。 300人くらいのデータの入ったDBをWEBページから操作するシステムを作成。 操作は、登録と、登録データの呼び出し(条件検索によってデータを抽出できるようにしたい)を行う。1人に対して、名前、生年月日、性別など、20程の項目を設定する。 【ページA】500人の名前、生年月日、性別など5~6項目が一覧で出るページ NO. 名前 生年月日 性別  住所・・・ 1  山田 1980.1.1  女  東京 2 田中 1990.5.5  男 沖縄 3 鈴木 1985.9.9  男  香川 ◎このページに、性別「男」だけのレコードを表示する、等の抽出機能を作成したい。 ◎会員NO.をクリックするとページB 遷移させたい。 ◎抽出結果をExcelでダウンロードしたい。 【ページB】Aから選んだ1名だけの20項目が出るページ。 ここで表示させたデータを操作し、変更した内容をDBに登録するボタンを作成したい。 ◎このページの項目に対し、ログインユーザーによって登録できる項目、できない項目を作成したい。 <疑問点> 1.htmlとxmlどちらがよいのか。htmlとxmlの差異で使えない機能があるのか。 2.データの呼び出し・格納をするので、phpかjavaが必要になるか。どちらがよいのか。php(java)はサーバー側に入れればよいか。 3.OSのユーザーアカウントにより、WEBページへのログイン時に制限を設定することか可能か。(phpでOSのログインユーザー名を取得し、ログインの可・不可を判定する事は可能か?)   4.3の権限を持つユーザーと、同名のOSのユーザーアカウントを本人以外が作り、ログインされる事を防ぐために、ネットワーク上で同名ユーザーアカウントを作成できないように設定したいが可能か。 5.WEBページへのアクセスを制限を設定する場合、サーバー側でどういう設定をすればよいか。ネットワークからのみ許可したい場合、ネットワーク名を設定に使用するのかhostsファイルを使用するのか。WAN設定を使用するのか。 6.1つのサーバーに複数のDBを入れて、そのうちの1つをこのシステム用として使用したい。そのDBはOracleにしたいが可能か。 7.1つのサーバーにOracleが2つ入っても大丈夫か?DBに名前を設定して区分できるか。 8.1つのサーバーに複数のDBを入れ、そのうちの1つからデータをWEBページで呼び出したい。クライアントが使用するWEBページのURLはどうなるか。 URLにはサーバーのip(ドメイン)とhtmlを指定し、サーバー内のhtml(XML)のソースに接続先DB名を指定すれば、複数あるDBから該当DBにのみアクセスできるか。 9.htmlからDBへのデータ格納失敗などのログは、サーバーのログとして残るのか。 10.ページAから1つのレコードを選び、ページB へ遷移したいが、この動作はphp(java)で可能か。可能であれば、プログラミングではどう書くか。 11.ページAでの抽出機能を、複数条件でも可能としたい。 表示項目に該当する検索用テキストボックスを作成し、入力した状態でボタンをクリックすると、該当レコードだけが検索結果として表示されるようにしたい。 [項目]          会員NO.  名前 生年月日 性別  住所 [テキスボックス]           田中       男 この状態で「検索」ボタンをクリックすると300件のレコードから、名前=田中を含む、性別=男の全レコードを表示するようにしたい。 html上でこの動作はphp(java)で可能かどうか。抽出のSQLが走るようにすればよいのか。 12.ページAで、webページで検索した結果を、Excelへダウンロードするためには、どのような設定をしたらよいか。特別に用意するツールはあるか。 Ofiiceが入っていないPCでダウンロードを行なうと、テキストなどで代替できるように設定はできるか。 13.ページBで、ログインユーザーごとに登録できる項目、できない項目を設定し、権限のない項目を変更し保存を行なうと、その時にエラーとなるようにしたい。 保存アクション時に、php(java)のif文で、全項目に対し値の有無チェックを行なう 事を考えたがもっと効率のよい方法はあるか。

  • アクセス2000のレコードボタンの非表示

    AとBの名前のフォームがあります。 AにはCという入力欄があり、Cを入力しBのフォームを開くと BはCに関連づいたレコードが抽出されます。 この時、Bのフォームにレコードボタン(左下の▲)を 非表示もしくは、使用不可にしたいのですが どうしたらよいでしょうか? 理由として、Aのレコード一つに対してBは必ず一つのためで Bが複数あると困るからです。 宜しくお願い致します。

  • filemaker 7 「関連レコードへ移動」について

    「関連レコードに移動」のスクリプトの設定方法が分からなくて困っています。 例えば、2つのテーブル、「商品台帳」と「売上台帳」があるとして、両方のフィールドに共通して「商品コード」があります。 それをリレーション定義でつなぎました。 そして、売上台帳のレイアウトでボタンを作成し、そのボタンに「関連レコードへ移動」のスクリプトを作成し、同じ「商品コード」の値の「商品台帳」へ飛びたいのですが、このあたりが分からず、何度やってもうまく移動してくれません。 色々試していると、時には何も動作がおきなっかったり、時には「このレイアウトでは結果を表示できないため、この処理は完了できません」と表示されたりします。 もうどうしたらいいのか分からないです。何がいけないのでしょうか。