dポイントプレゼントキャンペーン実施中!

お世話になっております。Access初心者です。
すみませんが至急で作成したいDatabaseのため、どうか以下ご教示お願い致します。

①質問内容
複数のテーブルをクエリ「Q_入力フォーム」で結合し、
そのクエリから作成した入力用のフォームがあるのですが全く動きません。
リレーションシップの結合の種類や結び方が間違っているのかなと思いますが、
素人なのでどこが違っているのか分かりません・・
図を添付しているので、正しい設定を教えて頂けますでしょうか。

●作りたいフォーム
お客様IDだけを入力すると、紐づけされた複数のテーブルのお客様情報が自動で表示され、
そこに手入力でデータを入れて保存していきたい。
フォームで保存したレコードは「T_入力用」のレコードに追加されていくようにしたい。

●テーブルについて
リレーションシップを結んでいる箇所は「データ型」「フィールドサイズ」「書式」を統一しています。
データ型は全て「短いテキスト」にしています。

【T_入力用】
→フォームで入力したレコードの保存をするところです。
【T_入力用_入力者名】
→フォームでドロップボックスに紐づける選択肢をレコードに入れています。
【T_顧客情報_日本支社】
→「T_入力用」テーブルIDと紐づけしたいマスタテーブルです。
【T_顧客情報_海外本社】
→「T_入力用」テーブルIDと紐づけしたいマスタテーブルです。
 ここで紐づけに使っているIDのデータは参照照合性不可・重複あり空白ありのIDデータです。
【T_顧客情報_海外担当者】
→「T_入力用」テーブルIDと紐づけしたいマスタテーブルです。
 ここで紐づけに使っているIDのデータは参照照合性不可・重複あり空白ありのIDデータです。

●クエリについて
以下テーブルを組み合わせて作っています。
フォームを作成するために作りました。
・T_入力用
・T_顧客情報_日本支社
・T_顧客情報_海外本社
・T_顧客情報_海外担当者

②質問内容
出来上がったフォームに新たにテキストボックスを追加し、
そこに別テーブルにあるフィールドを関数かなにかで表示させたいのですが
うまくいかなかったので関数式をご教示いただけますでしょうか。

すみませんが、何卒宜しくお願い致します。

「Accessフォームが入力できません。」の質問画像

質問者からの補足コメント

  • ご回答いただき大変ありがとうございます。
    説明が足りず申し訳ありません。
    複数のテーブルを結合したクエリ「Q_入力フォーム」を使って、1つのフォームを作りました。
    サブフォームではなく、フォームウィザードからQ_入力フォームをまるっと使って
    フォームを作成した感じになります。(画像を上げましたm(__)m)
    大変恐れ入りますが、ご教示いただけますと幸いです。

    フォーム画像:https://d.kuku.lu/3b7ee704fa
    構成画像:https://d.kuku.lu/077b313775

    「Accessフォームが入力できません。」の補足画像1
    No.1の回答に寄せられた補足コメントです。 補足日時:2020/05/16 13:41
  • nekoronda様
    ご回答いただき大変ありがとうございます。
    たびたび申し訳ありません…

    今回作成したフォームなのですが、
    登録者がIDを入力すると、
    T_顧客情報にある同じIDの会社名などを自動で抽出参照してくれて、
    その下にある同フォーム内の「T _入力用」の中の案件進捗状況フィールドに新規で手動入力していき、登録ボタンを押すとその内容が「T _入力用」に保存されていくようなものを作成したいのですが、、
    フォームウィザードで複数テーブルを結合したクエリを基に作成したのですが、リレーションシップがおかしいからなのか、なぜか全てが参照用となっていて手動入力できない状況です。
    大変恐れいりますが、フォームの作り方をご指摘頂けませんでしょうか。フォームウィザードを使用しない方がいいのでしょうか。

    No.2の回答に寄せられた補足コメントです。 補足日時:2020/05/16 15:11
  • nekoronda様
    大変分かりやすくご回答いただき大変ありがとうございます。何度もすみません。
    フォーム上にあるテキストボックスには
    "Q_入力フォーム"クエリでSELECTした値が以下のように出力されます。
    ①T_入力用の”ID”
    ②T_顧客情報_日本支社の”会社名”
    ③T_顧客情報_海外本社の”担当者”
    ④T_顧客情報_海外担当者の”海外担当社”
    ⑤T_入力用の”案件進捗情報”※データ入力用フィールド

    私はこの⑤フィールドのみに、値を手動で変更した後に登録ボタンを押すと
    テキストボックスの値がT _入力用テーブルに登録される機能を作りたいです。
    ①~④はクエリのSELECT結果を更新せず参照するのみです。

    クエリSELECT値を①②⑤のみに直すと理想通りになるのですが
    なぜかクエリSELECT値に③④を足してフォームを作成すると、フォームが動かなくなります。

    「Accessフォームが入力できません。」の補足画像3
    No.3の回答に寄せられた補足コメントです。 補足日時:2020/05/16 19:26
  • とんでもないです。こちらこそ、ご丁寧にご対応くださり大変恐縮です。
    私が必要な情報漏れており、大変すみません。。
    ご対応くださり本当にありがとうございます。
    AccessのDatabaseを共有しようと試行錯誤したのですが、
    私が勉強不足で上げ方が分かりません。
    大変恐縮なのですが、展開方法をご教示いただけないでしょうか。

    No.4の回答に寄せられた補足コメントです。 補足日時:2020/05/16 20:55
  • 大変ありがとうございます。簡単にできました・・
    失礼致しました。本当にありがとうございます。

    https://d.kuku.lu/7f302dc6bd

    クエリでも入力できませんでしたので、テーブルのデータの中身か、リレーションシップがおかしくなってしまっているのかなと感じております‥

    このデータベースは構成test用で、実際は別のテーブルデータで業務しますが
    T_顧客情報_海外本社の”ID”と、T_顧客情報_海外担当者の”海外ID”が
    空白があったり重複があったりするデータのテーブルを取り込むことになり、
    この2つのテーブルに主キーは設定できません。
    IDで照合して、同じIDのものがもしあればフォームに参照表示したい・・といった感じです。
    この2つのテーブルがクエリに追加されるとおかしくなります。

    No.5の回答に寄せられた補足コメントです。 補足日時:2020/05/16 21:10
  • 五月雨式にすみません。理想のフォームについて、言葉足らずだったので
    画像を作成しました。
    https://d.kuku.lu/8e8f761003
    お手数をおかけして申し訳ありません。

      補足日時:2020/05/16 21:16
  • お忙しいところ、ご対応くださり本当にありがとうございます…。
    お手数おかけしてすみません。

    No.6の回答に寄せられた補足コメントです。 補足日時:2020/05/16 21:22
  • nekoronda様
    ご対応いただき、またこんな短時間でご指摘くださったことを
    心から感謝しております…

    何度も、私が知識不足で大変申し訳ありません
    この画像のように、クエリのプロパティを探してもレコードセットを”ダイナセット (矛盾を許す)”
    が見当たりません。
    本当に大変恐縮ですがご教示頂けますでしょうか。
    申し訳ありません。

    「Accessフォームが入力できません。」の補足画像8
    No.7の回答に寄せられた補足コメントです。 補足日時:2020/05/16 22:05
  • ご対応いただき大変ありがとうございます。
    また何度も何度も本当にすみません。。
    色々いじってみたのですが、フォームのプロパティのレコードセットを”ダイナセット (矛盾を許す)”に変更すると
    今まで反映されていた、T_顧客情報_日本支社・T_顧客情報_海外本社・T_顧客情報_海外担当者が反映されなくなってしまいました。
    会社名などを確認しながらフォームで入力するためにはどうしたらよいでしょうか‥
    お手数をお掛けして大変恐縮なのですが、ご教示いただくことは可能でしょうか。

    No.8の回答に寄せられた補足コメントです。 補足日時:2020/05/16 23:15

A 回答 (8件)

一応原因は分かりました。


クエリは問題無いと思います。
原因はT_入力用_案件ステータス、T_入力用_入力担当者名ですね。
この2つのテーブルはT_入力用とリレーション関係にありますが、本フォーム上で更新されるのはT_入力用のレコードのみで、T_入力用_案件ステータス、T_入力用_入力担当者名上のデータについては更新されません。
そのため、更新しようとするとT_入力用とT_入力用_案件ステータス、T_入力用_入力担当者名のデータの間で矛盾が生じますので、更新エラーとなっています。

とりあえず、更新出来るようにしたいのであれば、Q_入力フォームのプロパティよりレコードセットを”ダイナセット (矛盾を許す)”に変更すれば変更可能です。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ご教示いただいたおかげで、完成させることができました!
本当にありがとうございます。。
とても助かりました・・感謝いたします。

お礼日時:2020/05/17 19:33

クエリの方のQ_入力フォームではなく、フォームの方のQ_入力フォームです。

この回答への補足あり
    • good
    • 0

アクセスファイル受け取りました。


ファイルなう上から削除して貰って大丈夫んです。
ちょっと見てます。
この回答への補足あり
    • good
    • 0

ファイルなうで展開できませんか?

この回答への補足あり
    • good
    • 0

No.1~3です。


理解力がなく申し訳なです。なんとなく分かりました。
ただ、原因解決するためには情報がいろいろ足りないですね。
最低でも
・Q_入力フォームのSQL
・フォームが動かないとは具体的の症状は?
・各テーブルに登録されている情報
は欲しいところです。
一番簡単なのはAccessファイルを展開して頂くことなのですが・・・。
この回答への補足あり
    • good
    • 0

No.1~2です。


フォーム上にあるテキストボックスがあり、そのテキストボックスは"Q_入力フォーム"クエリのSELECTした値が出力されている。
貴方は、テキストボックスが出力されている値を手動で変更した後に、登録ボタンを押すとテキストボックスの値がT _入力用テーブルに登録される機能を作りたいということでしょうか?
クエリのSELECT結果を出力しているテキストボックスの値は変更出来ません。
この回答への補足あり
    • good
    • 0

No.1です。


こちらこそ言葉足らずで申し訳ないです。
サブフォームに限らず、直接フォームのレコードソースに設定しても更新は出来ません。
もし、アクセスで更新機能を実現したいのであれば、
今設置しているテキストボックスはユーザー参照用として残し、別に更新用のテキストボックスを項目ごとに設置。
「レコードの保存」ボタンのマクロ内で各テーブルに対してUPDATE文を実行してあげる必要があります。
この回答への補足あり
    • good
    • 0

フォーム上にサブフォームを設置してクエリ表示している、そしてフォーム上に表示しているクエリのデータを更新しようとするが更新出来ないと理解しましたが、


クエリの場合はフォーム上から更新は出来ないと思いますよ。フォーム上から更新できるのは単一のテーブルをサブフォームで表示したときのみです。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A