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)に付き技術的可能性の可否について、或いは目的達成のためのアイデアが頂ければ喜びます。宜しくお願いします。
No.2ベストアンサー
- 回答日時:
1. リンクテーブル
住所録DB内に、家計簿DBのAccoutテーブルのリンクテーブルを作成するということです。Access のメニューの「ファイル(F)」→「外部データの取り込み(G)」→「テーブルのリンク(L)...」で作成します。リンクテーブルを作成すると、住所録DB内にあたかもAccount テーブルがあるかのように見えるのですが、データの実体は家計簿DBにあります。住所録DB内のリンクテーブルに対してデータの追加や変更、削除を行えば、家計簿DB 内の Account テーブルに対して追加、変更、削除が実行されます。
2.クエリー
>特定のレコードのリンクは内容を確認しながら一件一件指定する必要があります。
ということなので、二つテーブルを関連付けるフィールドがないようですね。関連付けさせるためのフィールド(結合フィールド)がなければ、二つのテーブルをリンク(リレーションともいいます。)させることはできません。逆に言うと、二つのテーブルをリンクさせるための作業が、結合フィールドを作成、および結合フィールドにデータをセットする行為になります。
もう少し具体的に書きますと、
Acount テーブルに、ID というフィールドと名称というフィールドがあり、次のようなデータが入っているとします。
ID 名称
---------------------
0001 山田さん
0002 佐藤さん
0003 鈴木さん
一方、住所録DBの担当者テーブルには番号というフィールドと氏名というフィールドがあったとし、次のようなデータが入っているとします。
番号 氏名
------------------------
1000 鈴木 一郎
1051 山田 太郎
1129 山口 努
1131 木村 庄之助
1132 山田 花子
Account テーブルの 0001 と 担当者テーブルの 1132
Account テーブルの 0003 と 担当者テーブルの 1000
をリンクさせたいとします。
方法1.番号を振りなおす
Account テーブルか、担当者テーブルのどちらかの番号を振りなおすわけですが、例えば担当者テーブルの番号を振りな直すなら、
番号 氏名
------------------------
0003 鈴木 一郎
1051 山田 太郎
1129 山口 努
1131 木村 庄之助
0001 山田 花子
のように、ID と 番号を一致させなければなりません。
方法2.フィールドを追加する
フィールドIDとフィールド番号の型(数値型とか文字型とか)が一致していれば、番号の振り直しでもよいのですが、型が一致していなければ、一致するフィールドを追加せざるを得ません。
↓こんな感じにします。
番号 ID 氏名
------------------------
1000 0003 鈴木 一郎
1051 0002 山田 太郎
1129 0004 山口 努
1131 0005 木村 庄之助
1132 0001 山田 花子
今日は疲れましたので、続きはまた今度にします。
分かりやすいご説明有難うございます。住所録DB内の担当者テーブル及び会社テーブルをUnionクエリーにて作った”相手"という新規テーブルに、方法2.のフィールドの追加を考えて見たいと思っています。
この新規のフィールドは家計簿DBのAccountテーブルの番号フィールドとリンクさせるための結合フィールドとし、そのフィールド内に双方が同じ番号になる数字を記入すればよいのですね?
ご説明の”続編”を心待ちにしています。
No.1
- 回答日時:
1)も2)も、「異なるDB」ということは関係ないように思います。
リンクテーブルを作成し、それに対してなんらかの操作を行えばよいわけですから。ただし、リンクテーブルの構造の変更はできませんので、構造の変更はリンク元のDBで行わなければなりません。1)ですが、まず、Accountテーブルに詳細情報が必要か不要かを示すフィールドを作り、Yes/No型で必要ならYes、不要ならNoにするとかにします。会社テーブルにも Accountテーブルの詳細情報が必要か不要かを表すフィールドと同じ型のフィールドを作成し、こちらは全てのレコードの内容を「必要」の値(Yes/No型ならYes)にします。で、Accountテーブルと会社テーブルとを、「IDか何かのフィールド」と「詳細情報が必要か不要か」のフィールドの二つの結合でクエリーを作成すればどうでしょうか。
2)ですが、会社テーブルと担当者テーブルのユニオンクエリーを作成し、そのユニオンクエリーとAccountテーブルを元にしてクエリーを作成すればよいのではないでしょうか。
この回答への補足
ご返事有難うございます。私の不勉強故に、残念ながら折角の貴ご説明を理解できないのですが、
1.リンクテーブルというのは“第3の”DBを作ってその中に家計簿DBのAccountテーブル(a)と住所録DBの会社テーブル(b)それぞれリンクする第3のテーブルを作って間接的に(a)と(b)をリンクさせる、という意味なのでしょうか?その場合、わざわざ第3のDBと第3のテーブルを作る意味はどういう点にあるのでしょうか?
2.ご説明の中で、クエリーの作成が恐らく特定のレコードをリンクさせる方法のご解説だと思いますが、具体的に上記(a)テーブル中のレコード“ A”と(b)テーブル中のレコード“B”とのリンクのさせ方をご教授いただけないでしょうか? いづれにせよ特定のレコードのリンクは内容を確認しながら一件一件指定する必要があります。
3.会社テーブル(b)と担当者テーブル(c)のユニオンクエリーの作成、そのユニオンクエリーとAccountテーブル(a)を元にしたクエリーの作成の仕方、上記2項同様、それぞれのレコードのリンクのさせ方のご指導宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- SQL Server SQL ServerでDBを構築。これは開発? 4 2022/05/28 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ACCESSに同時アクセス(編集)を...
-
2つのテーブルを比較して一致し...
-
ACCESS2000での円グラフ作成
-
SQLで日付を条件に削除したい
-
ツリー構造をRDBで表現するには?
-
SQL構文について教えてください
-
FileMakerで在庫管理をしたい!
-
access 銀行登録
-
データのコード化とは?
-
Accessクエリでの、LIKE条件
-
Accessレコードの追加や変更が...
-
accessで指定期間の曜日カウン...
-
アクセスで1ページに複数レコー...
-
私が考えたAccessのテーブル設...
-
access テーブル内のレコード...
-
3つの表を1つに縦に連結する
-
ルックアップウィザードはテー...
-
SQL Serverでの検索時の文字の...
-
ファイルメーカ 検索実行せず...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ACCESSに同時アクセス(編集)を...
-
Accessでvlookupみたいなことは...
-
Accessでテーブルからテーブル...
-
Accessクエリでの、LIKE条件
-
Accessレコードの追加や変更が...
-
access テーブル内のレコード...
-
SQLで日付を条件に削除したい
-
3つの表を1つに縦に連結する
-
Accessの追加クエリで既存のテ...
-
SQLで条件指定結合をしたいがNU...
-
デザインビューで、連結式 を...
-
ツリー構造をRDBで表現するには?
-
ACCESSで指定されたテーブルか...
-
リンクテーブルを CopyObject ...
-
2つのテーブルを比較して一致し...
-
時間の足し算
-
ODBCで接続するとDBに変更/追加...
-
パススルークエリをテーブル作...
-
INSERT時にデータ登録とmaxの発...
おすすめ情報