- ベストアンサー
Access サブフォームでの選択行の取得
こんにちは。 Access初心者です。 サブフォームでテーブルの項目を表示させていますが、 選択された行を取得する方法はありますか? サボフォームの下の方に現在選択されているレコード数が表示されてますが、その値でかまいません。 調べているのですが、なかなか検討がつきません。 宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
フォーム名がフォーム1、サブフォームコントロールの名前がサブフォーム1だとすると、 Forms!フォーム1!サブフォーム1.Form.CurrentRecord で取得できます。 (「Forms」と「Form」がありますのでご注意下さい) また、フォーム1にコードを記述する場合であれば Me!サブフォーム1.Form.CurrentRecord サブフォーム1へのコード記述であれば Me.CurrentRecord という構文によっても、それぞれ取得が可能です。
その他の回答 (3)
No3 さんの回答と同じですが・・・。 フォーム[売上伝票]に[売上伝票 サブフォーム]が配置されているとします。 次は、メインからサブフォームのカレントレコード等を取得するサンプルです。 Private Sub コマンド142_Click() MsgBox FormRecord(Me.売上伝票_サブフォーム.Form) ' カレントレコードを表示 MsgBox FormRecord(Me.売上伝票_サブフォーム.Form, 1) ' レコードカウントを表示 End Sub Public Function FormRecord(ByVal frm As Form, _ Optional R As Integer = 0) As Integer On Error Resume Next If R = 0 Then FormRecord = frm.CurrentRecord Else FormRecord = frm.Recordset.RecordCount End If End Function もちろん、 MsgBox FormRecord(Forms("売上伝票").売上伝票_サブフォーム.Form) という書き方でもOKです。
お礼
お礼が遅くなりましてすみません。 大変詳しく丁寧にご回答頂きありがとうございます。 勉強になりました!
- CHRONOS_0
- ベストアンサー率54% (457/838)
データベースではレコードナンバーにはあまり意味がありません レコードを特定するには主キーを使いましょう 取得というのがどこへ取得したいのか書かれていませんが 普通に主キーをフィールド名で参照すれば、 カレント(選択されている)レコードの主キーが得られます
お礼
お礼が遅くなり申し訳ありません。 説明不足で意味が分かりずらかったと思います。 ご回答ありがとうございました。
- CHIPDALE77
- ベストアンサー率21% (47/223)
Me.[テキストボックス名].Value とかで今何が選択されているかわかるので テキストボックスのクリックイベントに 書き込んではどうでしょうか?
お礼
お礼が遅くなり申し訳ありません。 参考にさせて頂き無事出来ました。 ご回答ありがとうございました。
お礼
お礼が遅くなりました。 同じようにやらせて頂き、無事できました! どうもありがとうございます。