• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessのプロの方教えて!!)

Accessのプロの方教えて!!

このQ&Aのポイント
  • 申請者が本人の場合には、本人テーブルよりデータを引用したいのです。
  • フォームを使って入力する際に、続柄が本人としたときには、本人テーブルよりデータを表示させ、本人以外ではそのままデータを入力できるようにしたいです。
  • 後で、申請者一覧を確認する際には、本人データも含めた一覧が必要になります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

「何度か同じ質問をしたのですが・・・。」と言われても、そのときの回答の何がわからなかったのか、あるいは、何が問題なのかを書くとか、その質問の URL を貼り付けるとかしないと、前回と同じような回答しかもらえないとは思いませんか? 私は http://oshiete1.goo.ne.jp/kotaeru.php3?q=801406 の回答をしましたので、いくらか問題点が推測できますが、他の質問については、どういう質問をされたのか、また、どういう回答がついたのか、全くわかりません。 とりあえず、私が知りえる範囲で推測して書きますが、 「クエリーの IIf([申請者].[続柄]="本人", [本人].[氏名], "" ) をフォームで表示しているテキストボックスには入力できないのが嫌だ」ということですよね?それで現状では、申請者テーブルをデータシートビューで開いて直接申請者テーブルに入力せざるを得ないということですよね? やり方はいろいろあるかもしれませんが、私だったら次のようにします。 (1) 本人テーブルの番号と申請者テーブルの番号を結合したクエリーを作成し、クエリーのフィールドには、 申請者テーブルの氏名、住所、電話番号 と 本人テーブルの氏名、住所、電話番号 の両方を表示させる。 (2) フォームに続柄を表示するコンボボックスを作り、 コントロールソース=続柄 値集合タイプ=値リスト 値集合ソース=本人;父;母;兄弟 のようにする。 (3) 続柄コンボボックスのイベントプロシージャに If 続柄 = "本人" Then   氏名.ControlSource = "本人.氏名" Else   氏名.ControlSource = "申請者.氏名" End If のように記述。 (続柄コンボボックスのプロパティ→「イベント」→「変更時」を「イベントプロシージャ」にし、右端の「...」をクリック) #プログラムでもあると言えばプログラムでもあるので、まぁ別にここでもいいと思いますけどね。

manamiu
質問者

お礼

的外れな事を何度もいってすみませんでした。基本的な部分の間違いに気がつき、作り直したらきちんと「tsukasa-12r」さんのアドバイス通りできるようになりました。「tsukasa-12r」さんは何度もアドバイスしてくれたのに、のみこみが悪くてすみません。どうかこれからも嫌にならずに、何かあった際にはアドバイスお願いします。 本当に助かりました。ありがとうございました。

manamiu
質問者

補足

スミマセンが、もう少し教えて頂きたいのですが。 (2)のところなんですが、これだけですと実際にデータを入れることが出来ません。何度も申し訳ありませんが、この際に必要なフォームは他に作成するのでしょうか?フォームは何を元にどの様に作成すればいいのかわかりません。(2)(3)の内容的には理解できましたが、他のつながりが理解できないのでもう少しお願いします。 ご迷惑をおかけしておりすみません。

その他の回答 (3)

回答No.4

>(2)のところなんですが、これだけですと実際にデータを入れることが出来ません。 というのは、テーブルに保存されないということでしょうか?それなら、コンボボックスのコントロールソースプロパティを「続柄」に設定しておけばいいと思います。 (1) と (2)、(3) の関連ですが、きっちり書いていなかったのはミスです。すみません。本人テーブル及び申請者テーブルを表示するフォームのレコードソースプロパティに (1) のクエリーを設定します。他にフォームを作成する必要はありません。

manamiu
質問者

補足

なかなかうまくいきません。 上記の通り(1)で作成したクエリーをもとにフォームを作成しました。そのときできたフォームは「メイン・サブフォーム」になりました。そこへ「続柄」のコンボボックスを作成しました。(メインの方でいいのでしょうか?)その後(2)と(3)をやってみましたが、実際にデータシートに切り替えて、コンボボックスのリストから選択すると、ステータスバーに「このコントロールは”続柄”に連結しているので編集できません」とメッセージが出てきます。 やり方が間違っているのでしょうか?

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.2

> カテゴリーは、Officeアプリケーションの方がいいですね。 違った。。。 Microsoftアプリケーション ですね。。。

参考URL:
http://okweb.jp/oshiete.php3?c=232
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

カテゴリーは、Officeアプリケーションの方がいいですね。 > 続柄が本人としたときには、本人テーブルよりデータを表示させ、 番号フィールドで、判断できるのかな? フォームの続柄を入力するコントロールの更新後イベントを使えばいいと 思います。 If Me!続柄 = "本人" Then   Me!氏名 = DLookup("[氏名]","[本人テーブル]","[番号]=" & Me!番号)   Me!住所 = DLookup("[住所]","[本人テーブル]","[番号]=" & Me!番号)   Me!電話番号 = DLookup("[電話番号]","[本人テーブル]","[番号]=" & Me!番号) End If

関連するQ&A