- ベストアンサー
ACCESSのサブフォームについて
ACCESSにおいて、サブフォームにデータを表示させた状態で、あるレコードをダブルクリックで選択させ、 そのデータ(対象レコード)をメインフォームに戻って使用させるにはどのようにしたらよろしいのでしょうか? サブフォームの該当箇所に、ダブルクリック時イベントを貼り付けて、 制御をメインフォームへ移すのでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
前の回答のVB手直しで出来ます。 Private Sub コード_DblClick(Cancel As Integer) DoCmd.OpenForm "Form-A", wherecondition:="[コード]='" & Me![コード] & "'" DoCmd.Close acForm, "Form-B" ’←この行をカット End Sub これだけで Form-A Form-B をクリックだけで両フォームを行ったり来たり出来て、Form-Bのコードフィールドクリックで、Form-Aが直ちに変わります。(私は氏名フィールドクリックでも使用できるようにしています。) どちらのフォームも表示したまま作業が出来、また変更を加えた内容も保存されます。
その他の回答 (1)
私の場合、下記のように使っています。 【Form-Bが一覧形式で表示される一覧票で、Form-Bのコードフィールドをダブルクリックした場合にクリックしたコードを持つ個人表 Form-Aを表示します。個人票が開いたら一覧表を閉じます。(コード番号の他、氏名フィールドにも同じようなダブルクリック時の記述も作っています)】 Private Sub コード_DblClick(Cancel As Integer) DoCmd.OpenForm "Form-A", wherecondition:="[コード]='" & Me![コード] & "'" DoCmd.Close acForm, "Form-B" End Sub 【新しいデータの入力用フォームにする場合 新規登録ボタン 個人票 Form-A にデータが残っている場合、一旦closeして新規登録にします。Form-A の中のボタンです。】 Private Sub 新規登録_Click() DoCmd.Close DoCmd.OpenForm "Form-A", datamode:=acFormAdd End Sub 【一覧表示へ戻るボタンのコードです。】 Private Sub Form-Bへ_Click() DoCmd.OpenForm "Form-B" DoCmd.Close acForm, "Form-A" End Sub 一応自信なし ということで、ご参考になればよいのですが…
お礼
回答、アイテムありがとうございます。
補足
現在、メインフォームとサブフォームは1画面上に常に表示している状態です。 なので、メインフォームを開くときにパラメータを渡すのではなく、 すでに開かれているメインフォームに対して、結果データを表示させたいと考えています。 やりたいことは、まずメインフォームでキーとなる値を入力させます。(社員番号とします) メインフォーム上には、社員番号を入力させるエリア、講習名と受講期間を表示するエリアがあります。 テーブルからキーにマッチしたデータを、サブフォーム上に表示させます。 (社員番号・受講した講習名・受講期間・・・等) 複数表示したサブフォームのデータの中から、1レコード選択させます。 この選択させる方法を、該当レコードのどこかのレコード(社員番号・講習名・受講期間どこでも)を ダブルクリックさせて選ばせます。(ダブルクリック時イベント) 選ばれたレコードの講習名と受講期間を、先ほどのメインフォームの場所に表示させます・・・、 といったことをやりたいのです。 メインフォームとサブフォームは、同一画面上にあり、サブ→メインへのデータの受渡しを 通常どのようにしているのかを教えて頂ければと思います。 う~む、文章にするとむずかしいです・・・。
お礼
再度、回答ありがとうございます。
補足
おお、出来ました。 こういったチョットしたことを調べるのにも、いろいろな本を見てもなかなか見つけられないことが多いです。 やはり、感と経験が物を言う世界ですね。 また、何かあったときにはよろしくお願いします。