Access修行中の身で、勉強をかねて書類BOXのデータベースを作成中です。
親テーブルのフィールド
ID(主キー、オートナンバー)、タイトル名、・・・・・、保存箱ID
子テーブルのフィールド
保存箱ID(主キー、オートナンバー)、保存箱名、・・・・
リレーション
親:保存箱ID-子:保存箱ID
という構成です。
クエリで以下のような複合テーブルを作成し、
複合テーブルのフィールド
ID(主キー、オートナンバー)、タイトル名、・・・、保存箱名、・・・・
データを入力しようとすると、「レコードを追加できません。テーブルの結合キーがレコードセットにありません。」というエラーがでます。また、保存箱IDに入力のないレコードは、抽出されません。
どのようにしたいかというと、保存箱IDは入力しなくてもいいフィールド(関連させなくてもよいデータ)にしたく、複合テーブルで保存箱名を入れると、子テーブルに新たにレコードが追加されるようにしたいです。
できれば、SQLを使用せずに解決したいと甘えておりますが、無理でしょうか。
No.1
- 回答日時:
テーブルの構成、結合方法(キー)も悪い様です。
記載の通りであれは、関連付けられるキーは1:Nのキーで、結合するキーは保存箱名になるかと思います。が、日本語をキーにすると後々、更新等で不具合が出そうですが...
推測ですが、親子関係を築きたい(親:ヘッダー、子:明細)のであれば、子に親のオートナンバーを与えれば済みます。これが1番シンプルな気がいたしますが...
ご質問の意図されている事と違いましたら、ご容赦下さい(^^;
この回答への補足
ご推察のとおり、保存箱名と保存箱IDを別としたのは、日本語を主キーにしないほうがいいと思ったからです。
この場合、親と子の関係が、∞対一なので、子に親のオートナンバーを与えるのは無理だと思うのですが。私の親と子という言い方がおかしかったですね。メインテーブルとサブテーブルという意味で、親と子という言葉を使っておりました。
No.2ベストアンサー
- 回答日時:
> 保存箱IDに入力のないレコードは、抽出されません。
これに関しては、そのクエリをデザインビューで開いた後、親・子テーブルの「保存箱ID」を結合している線を右クリックし、「結合プロパティ(J)」を選択して、「親テーブルの全レコードと...」という方にチェックを入れてOKをクリックすれば、解決します。
(親テーブルの全レコードを表示した上で、子テーブルに該当データがあれば、それも表示する、というクエリになります)
・・・が。
> 複合テーブルで保存箱名を入れると、子テーブルに新たにレコードが追加されるように
の問題には、上記のクエリでは対処できません。
(子テーブルの「保存箱ID」が一対多の「一」側なので)
これに対処するには、
a)親テーブルをレコードソースとするフォームを作成し、
b)「保存箱ID」を、子テーブルをリストとするコンボボックスで表示させ、
c)子テーブルにない「保存箱」を入力した場合には、それを子テーブルに追加するための
フォームを別途で開く
とするのが、通常とられる手段かと思います。
◎親テーブルで、「保存箱ID」(数値型)フィールドをコンボボックスで表示させる方法:
1)テーブルをデザインビューで開く
2)「保存箱ID」にカーソルを移動
3)画面右下の領域で、「ルックアップ」タブをクリック
4)「表示コントロール」で、「コンボボックス」を選択
5)「値集合ソース」に子テーブル名を、「列数」に「2」を、列幅に「0cm;3cm」を入力
(子テーブルのフィールドの並び順が「保存箱ID、保存箱」の順だった場合)
*この設定をしておくと、親テーブルを元にフォームを作成して、フィールドリストからの
ドラッグアンドドロップでコントロールを追加した場合、自動的にコンボボックスになる
ようになります。
なお、「c)」については、フォームのコンボボックスに「リスト外入力時」イベントを設定してやる必要があります。
これについての説明は、以下を参照して下さい:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1749600
※「リスト外イベント」は、「子テーブルにないデータだった場合に即座に追加」するための
一手段ですので、あくまで参考までに、ということで。
不明な点などありましたら、またご質問下さい。
(わかる範囲でしたら、お応えします)
詳しい回答どうもありがとうございます。
上の件は、速攻解決いたしました。
下の件は、時間がかかりそうなので(なにぶん修行中の身なので)、
先にお礼を述べさせていただきます。
本当にどうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
Access レコードを追加できません。テーブル’○○’の結合キーがレコードセットにありません。
Access(アクセス)
-
アクセス レコードセットを更新できません
その他(データベース)
-
Accessレコードの追加や変更が出来ません。
その他(データベース)
-
-
4
ACCESSのフォームからデータの追加ができない
その他(データベース)
-
5
このオブジェクトに値を代入することはできません
その他(データベース)
-
6
Access2003で質問です。「フィールド”とキーが一致・・・」
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
Accessを使って日付を比較したい
-
accessのレポートであとから他...
-
accessで、「集計のオプション...
-
Accessの入力フォームから、テ...
-
オートナンバー型を1から始める...
-
Accessの「式で型が一致しませ...
-
Accessフォームでデータ入力で...
-
Access 複数フィールドの一致
-
ACCESSを活用した取引先情報の管理
-
アクセスのオートナンバーの再...
-
アクセスの重複クエリ
-
Access クエリの更新結果をテ...
-
アクセスのデータ型を変更する...
-
Accessで、指定した区間のシリ...
-
ACCESS クエリで重複データを最...
-
ACCESSでクエリを作成したら「...
-
選択したチェックボックスのみ...
-
access・カウント結果がゼロで...
-
ACCESS クエリで、グループ化...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
accessのレポートであとから他...
-
Accessを使って日付を比較したい
-
アクセスにエクセルのデータを...
-
Access 複数フィールドの一致
-
accessで、「集計のオプション...
-
Accessの入力フォームから、テ...
-
Accessで検索を高速化
-
MS-Accessのレコード内のフィー...
-
Access2010 携帯番号にハイホン...
-
Accessフォームでデータ入力で...
-
オートナンバー型を1から始める...
-
Access 2010 土日祝日を除いて...
-
アクセスのフォームを開くとき...
-
Accessクエリのデータ表示件数...
-
Accessのクエリによる集計が出...
-
アクセスのオートナンバーの再...
-
アクセスの重複クエリ
-
Access クエリの更新結果をテ...
-
ACCESS Yes/No型の集計
おすすめ情報