目次
一対一のリレーションでレコードを追加
こんにちは。伊川(@naonaoke)です。
今回は、一対一のリレーションが設定されているテーブルにレコードを追加します。
この時に、レコードが追加されないときがあります。
その際のエラー回避方法について説明します。
問題提起
(株)IKAWAの阿久 世子男(アク セスオ)は上司から下記の依頼を受けました。
作成された社員名簿に、レコードを追加することができない。
何が原因なのだろうか?
解決策
回答
・リレーションの構造を説明して上司に理解をしてもらう。
一番メインとなるテーブルから追加する。
リレーションの構造
リレーションにレコードを追加する際には、一番重要なテーブルは何かということ考えます。
メインのテーブルからレコードを追加しないと、レコードは追加できません。
レコードの追加 作成手順その1 データベース確認
この社員名簿にレコードを追加する際は、MT_社員住所録を起点に追加しないとエラーになります。
それは、MT_社員住所録を起点にリレーションを設定しているからです。
また、MT_社員配属に社員は存在するが、MT_社員住所録に存在しない社員は、データベースに矛盾が生じます。
レコードの追加 作成手順その2 クエリとフォームを作成する
t_社員住所録追加1から追加をします。
追加クエリに関しては、上の記事で確認してください。
レコードの追加 作成手順その3 VBAのコードを仕込む
このようなVBAのコードを仕込んでいます。
この入力フォームに関しては、リレーションが設定されているテーブルを元に作成しています。
入力項目全部を入力すると、すべてのテーブルに反映されます。
フォームの作成時のACCESSの図です。
ここがポイント
ここがポイント
一対一のリレーションだけでなく、リレーションを設定すると、若干面倒な場合があります。しかし、リレーションを設定した面倒よりも、はるかにメリットはあります。ACCESSはリレーションを設定できるところが、Excelよりも優れているところになります。
まとめ
今回のまとめ
完璧な社員名簿を作成して、業務を煩雑をなくそうと思った阿久 世子男(アク セスオ)なのでした。
今回のサンプルファイルは、No91です。
毎日の業務が、3時間短縮できます
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。