• ベストアンサー

Access サブフォームでの選択行の取得

こんにちは。 Access初心者です。 サブフォームでテーブルの項目を表示させていますが、 選択された行を取得する方法はありますか? サボフォームの下の方に現在選択されているレコード数が表示されてますが、その値でかまいません。 調べているのですが、なかなか検討がつきません。 宜しくお願い致します。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.3

フォーム名がフォーム1、サブフォームコントロールの名前がサブフォーム1だとすると、 Forms!フォーム1!サブフォーム1.Form.CurrentRecord で取得できます。 (「Forms」と「Form」がありますのでご注意下さい) また、フォーム1にコードを記述する場合であれば Me!サブフォーム1.Form.CurrentRecord サブフォーム1へのコード記述であれば Me.CurrentRecord という構文によっても、それぞれ取得が可能です。

rariko
質問者

お礼

お礼が遅くなりました。 同じようにやらせて頂き、無事できました! どうもありがとうございます。

その他の回答 (3)

noname#22222
noname#22222
回答No.4

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です。

rariko
質問者

お礼

お礼が遅くなりましてすみません。 大変詳しく丁寧にご回答頂きありがとうございます。 勉強になりました!

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

データベースではレコードナンバーにはあまり意味がありません レコードを特定するには主キーを使いましょう 取得というのがどこへ取得したいのか書かれていませんが 普通に主キーをフィールド名で参照すれば、 カレント(選択されている)レコードの主キーが得られます

rariko
質問者

お礼

お礼が遅くなり申し訳ありません。 説明不足で意味が分かりずらかったと思います。 ご回答ありがとうございました。

回答No.1

Me.[テキストボックス名].Value とかで今何が選択されているかわかるので テキストボックスのクリックイベントに 書き込んではどうでしょうか?

rariko
質問者

お礼

お礼が遅くなり申し訳ありません。 参考にさせて頂き無事出来ました。 ご回答ありがとうございました。

関連するQ&A