
ACCESSでデータベースを作成していますが、入力する項目が計400程度になりそうなことが分かり、
色々調べた結果、テーブルを分けてクエリで結合というのがいいということで、
A(主要情報の入力テーブル。フィールド数200)
B(追記項目や詳細なオプション情報。フィールド数200)
の2テーブルまで作りました。
また、Bテーブルに全く情報を入れない場合もあります。
そこで質問させていただきたいのですが、それらを結合するにあたり、どのように関連付けすればよいのでしょうか?
Bには後でオプション情報を追記することもあるので、Aを入力した時点でBの空テーブルも作成できるようにしたいのです。
ただ、その場合のAとBテーブルの関連付けできる基本情報がないので悩んでおります。
どうぞ宜しくお願い致します。
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
設計上はもっと細かくテーブルを分けた方がいいような気がします。
。。1つのテーブルで15前後に押さえてテーブル数20~30というのが普通です。
1つのテーブルを巨大にしても項目を探すのが大変であったり、
少しの変更に時間がかかったりと硬直化しがちです。
関連付けは両方のテーブルで同一の項目を用意します。
仮に商品コードというキー項目があったとして、
AとBに商品コードを用意します。
この回答への補足
アドバイスありがとうございます。
関連付けるべき項目を作らなければいけないのはこれまでの試行錯誤で分かったのですが、
ないんですね‥関連付けられそうな項目が。。
あるとすれば伝票番号なのですが、それを入力したら主にも副テーブルにも同じ番号が自動で入る方法はなさそうですし、難しいのですかね?やはりある程度は手動でしないと。
ありがとうございます!

No.6
- 回答日時:
皆様が回答されていることをまとめると、
例えばAにオートナンバーの主IDを作った際に、
BにAのIDを入れるフィールドを用意すれば
よいだけです。 これはオートナンバーではなく、
長整数型などにしておき、データを入れる際に、
Aテーブルとの整合性を保つように作ればよい
わけです。
ただし、クエリのフィールド数も255なので、
ひとつのフォームの連結フィールドによって
指定できるデータ数は255です。
テーブルの設計はシステム上とても大切なこと
なので、ある程度理解してから事を進めないと、
もう一回作り直したいと思われることが何度も
おきると思われますので、大きなものに取りかかる
前に、しっかりと勉強なさってください。
> データを入れる際に、Aテーブルとの整合性を保つように作ればよい
わけです。
確かにそうですね。自分でオートナンバーと同じ番号を入れればよい‥。
しかし入れ忘れたり、後で副テーブルのみを見た時の混乱が心配です。
できればAのデータ入力の時点でBにも同じものが入ればと‥。
とにかくアドバイスありがとうございます!
No.5
- 回答日時:
どうやらテーブルを分けるという意味をよく理解しておられないみたいですね
(1)テーブル内に繰り返しがあるときは別テーブルに分ける
例 質問1、回答1、質問2、回答2、・・・
(2)主キー以外に従属するフィールドは別テーブルに分ける
例 売上ID、売上日、顧客ID、顧客名、顧客電話番号
の顧客名、電話番号
などの正規化規則に則って分けていくのですよ
フィールド数が多すぎる場合は(1)の繰り返しのケースが多いですね
> フィールド数が多すぎる場合は(1)の繰り返しのケースが多いですね
まさに仰るとおりです。この形ですね。
この(1)の場合の分け方で混乱しております。これを正規化‥できるのでしょうか‥。
とりあえず私のレベルが低いことだけは分かりました。。
No.4
- 回答日時:
> 色々調べた結果、テーブルを分けてクエリで結合というのがいいということで、
クエリにしたところで、
1レコードのフィールド数は 255 まで
という制限があることはご存知ですよね?
ちょっと心配になりました。
この回答への補足
知りませんでした‥。ありがとうございます!
しかしながら、クエリは恐らく255までは行かない形で作成できると思います。
勉強になりました。
No.3
- 回答日時:
<主表>
ID__フィールド_1__フィールド_2
1___F1_1____________F2_1
2___F1_2____________F2_2
<従表>
ID__主表_ID__フィールド_1__フィールド_2
1____2__________S_F1_1_________S_F2_2
<主表 クエリ>
ID__主表.フィールド_1__主表.フィールド_2__従表.フィールド_1__従表.フィールド_2
1___F1_1___________________F2_1
2___F1_2___________________F2_2___________________S_F1_1________________S_F2_2
SELECT 主表.ID, 主表.フィールド_1, 主表.フィールド_2, 従表.フィールド_1, 従表.フィールド_2
FROM 主表 LEFT JOIN 従表 ON 主表.ID = 従表.主表_ID;
※こういうテーブル設計になるかと思います。
※問題は、かかる主と従の関係を持つテーブルデータの管理要領が不明なこと。
※しかし、これはリレーショナル・データベースの基本中の基本。
※ヘルプの「Access データベースのリレーションシップについて」を一通り読まれたし。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Accessのフィールド数が255しかない=業務では使えない?
PowerPoint(パワーポイント)
-
列が255以上のCSVファイルをAccessでリンクテーブルを作るには
Access(アクセス)
-
Access又はExcelで256項目を超えるCSVファイルをインポートしたい
Excel(エクセル)
-
-
4
Access サブフォームでの選択行の取得
その他(データベース)
-
5
ユニオンクエリで繋げられるテーブル(クエリ)の上限の個数は?
Access(アクセス)
-
6
Acccessで2つのテーブルから1つのフォームをつくりたい
Access(アクセス)
-
7
access で「指定したフィールドが多すぎたため、・・」エラーが出ます。
その他(ソフトウェア)
-
8
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
9
アクセスのフォームの幅の最大値はいくつでしょうか?
Access(アクセス)
-
10
Access クエリ実行が急に非常に遅くなりました。
Access(アクセス)
-
11
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
12
ACCESS2000「定義されているフィールドが多すぎます。」のエラーについて
その他(データベース)
-
13
AccessのSQL文で1件のみヒットしたら終了させる構文。
その他(データベース)
-
14
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
15
ACCSESS2013VBA フォームのレコードソースを変更する
その他(データベース)
-
16
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
17
AccessのWHERE句において、変数は使用できますか?
Access(アクセス)
-
18
ACCESS VBA でのエラー解決の根拠がわかりません エラー「イベントプロパティに指定した式・・
Access(アクセス)
-
19
access2021 VBA メソッドまたはデータメンバーが見つかりません エラー発生
Access(アクセス)
-
20
Accessでコードを入れると名前がでるようにしたい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのフィールド数が255しか...
-
ExcelのデータをコピーでACCESS...
-
ACCESSでの改行コード
-
INSERT INTO ステートメントに...
-
SQLServer2005のSQL文での別名...
-
ACCESSで400以上のフィールドが...
-
ACCESSでオートナンバーを任意...
-
Accessでテーブルの値をテキス...
-
ACCESS2000「定義されているフ...
-
view作成時にデータ型を変更し...
-
ACCESSでテーブルのチェックを...
-
アクセス メモ型 255文字...
-
通貨型で\\0の時、何も表示しな...
-
ファイルメーカーでCountifの様...
-
accessで重複を防ぎたい
-
Access:リンクテーブルマネー...
-
ACCESS レーダーチャートのデー...
-
ACCESSでテーブルのフィールド...
-
【Access】フォームで自動計算...
-
accessのレポートで元になるテ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INSERT INTO ステートメントに...
-
SQLServer2005のSQL文での別名...
-
accessのレポートで元になるテ...
-
Accessのフィールド数が255しか...
-
Accessでテーブルの値をテキス...
-
ACCESSで400以上のフィールドが...
-
ExcelのデータをコピーでACCESS...
-
ACCESSで和暦を西暦に・・・
-
Accessで、固定アルファベット+...
-
ACCESSでの改行コード
-
ACCESSでテーブルのチェックを...
-
【Access】フォームで自動計算...
-
アクセス メモ型 255文字...
-
ACCESSでオートナンバーを任意...
-
アクセス エラーを数値「0」に...
-
主キーはオートナンバー型のID...
-
固有レコード識別子の選択とは??
-
accessで重複を防ぎたい
-
Access:リンクテーブルマネー...
-
Access 昇順・降順で並び替え...
おすすめ情報