- ベストアンサー
アクセスでの詳細表示のしかた
新規採用の応募者のDB作成しました。 学校の種別(大学院、大学、高校)や学校名で検索(クエリ)のフォーム(A)に、応募者テーブルを基にしたデータシート型のサブフォーム(B)を埋め込みました。 ここまでは、学校名の一覧表示のフォーム(O)に詳細表示用のボタンを配し、マクロで上記のサブフォームを含む、学校情報フォーム(A)を開くのはできました。 次に、このサブフォーム(B)中の応募者のID(氏名でも)をダブルクリックすると、応募者の詳細表示フォーム(C)を表示できるようにしたくて、応募者IDのコントロールのプロパティでイヴェントのダブルクリックにマクロを設定しました。 (C)フォームを開く where条件として [フォーム(B)]![応募者ID]=[フォーム(C)]![応募者ID]としても、左項の値が右項へ代入されず、うまく行きません。 どうしたら、サブフォーム(データシート)の帯び データから特定のレコードを指定して、更に別のフォーム(特定レコード)の表示が可能なのでしょうか? 不慣れで、説明もままならないこんな私にどなたかHELP!
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは whereの指定の方法に問題があるように思います. [フォーム(B)]![応募者ID]=[フォーム(C)]![応募者ID] フォームCからしてみれば,フォームBの内容は一切関知しないので,具体的な値を指定 してあげる必要があります. DoCmd.OpenForm "フォーム(C)", , , "[フォーム(C)]![応募者ID]=" & フォームBの応募者ID という感じにすればできると思います. 仮に,フォームBの応募者IDが10だったら,[フォーム(C)]![応募者ID]=10 という文字列がwhereで渡されることになります.
その他の回答 (4)
- Gin_F
- ベストアンサー率63% (286/453)
あ。。失礼しました。 > このサブフォーム(B)中の応募者のID(氏名でも)をダブルクリックすると、 サブフォーム内のコントロールのイベントで実行するんですね。 なら、サブフォームを参照させる必要はないです。 他の方の回答でよろしいかと。
- Gin_F
- ベストアンサー率63% (286/453)
サブフォームを使っているのなら、 (応募者IDが数値型の場合) "応募者ID=" & Me!サブフォームコントロール名.Form!応募者ID (応募者IDがテキスト型の場合) "応募者ID='" & Me!サブフォームコントロール名.Form!応募者ID & "'" かな?
- O_cyan
- ベストアンサー率59% (745/1260)
サブフォーム(B)の応募者IDのフィールドのダブルクリックのイベントに Private Sub 応募者ID_DblClick(Cancel As Integer) Dim stDocName As String Dim stLinkCriteria As String stDocName = "フォーム(C)" stLinkCriteria = "[応募者ID]=" & Me![応募者ID] DoCmd.OpenForm stDocName, , , stLinkCriteria End Sub と記述してみてください。 フォームに抽出条件がなくてもこれで行けるはずです。
- snoopy64
- ベストアンサー率42% (337/793)
ぱっと見ですけど・・・ フォームCのレコードソースに指定してあるクエリ内で、応募者IDの条件に =[フォームB]![応募者ID] でどうですか? 頑張ってくださいヽ(^。^)ノ