• ベストアンサー

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

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

  • rariko
  • お礼率28% (223/790)

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

  • ベストアンサー
  • 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

  • ACCESSのサブフォーム

    ACCESSのサブフォームで、レコード表示について教えてください。 添付のサブフォームの一番左のコンボボックスに値を入力もしくは選択すると、未入力のレコードが下に1行分増えます。 (その他項目は連動して表示されます) サブフォームは帳票フォームを選択しているのですが、一般的には帳票フォームを選択した場合、レコードの数分だけ表示されると思うのですが、これは1レコードづつ増えていきます。 このサブフォームを作った人がもういないので、どうやって作ったのかが分かりません。 どなたか分かる人がいれば教えて頂けますでしょうか。 必要な情報があれば、調べて回答します。

  • アクセスでサブフォームのレコードを取得したい。

    教えてください!!MS accessにてサブフォームのレコードの数やレコードの内容をVBAにて取得したいと考えてます。その結果によって、条件分岐がしたいので・・・。現在は、サブフォームのフッターに=count(*)のテキストボックスを作り、この値を取得しています。もう少しスマートに(直接)取得できないのでしょうか?ちなみに(サブフォームの)コントロール名.form.countでやってみると、違う数字が出てきます。この数字はいったいなんでしょうか? お願いします。

  • Accessの選択クエリの選択を切り替えたい

    Accessで、フォームにコンボボックスとサブフォームを作成してコンボボックスで選択したテキストをキーワードにサブフォームに選択クエリを表示させようと考えています。 コンボボックスの項目は、値集合ソースでテーブルを設定して、選択された項目は、my_Text = Me.コンボ1.Textで取得して クエリのSQL文を変更すればいいのかなぁ?って想像しています。 でも、サブフォームに設定したクエリのSQL文の変更の仕方が解りません。どなたか?詳しい方いらっしゃいましたら教えて頂けないでしょうか?宜しくお願い致します。

  • ACCESS サブフォームについて

    □ACCESS 2003 ACCESS VBA初心者です。 処理方法が判らず、行き詰ってしまったので質問させて下さい。 サブフォームの中にテーブルのレコードを表示させ、 レコードの内容によって対象のレコード行の列の制御をしたいのですが Bookmarkで対象行の取得までは何とか辿りついたのですが、 対象行の制御が上手く行きません。どのようにすれば良いでしょうか? ご教授お願いします。 サブフォームはレコードソースにてテーブルを参照しています。 テーブルの項目は[従業員コード],[従業員名],[就業区分],[支給区分]の4列です。 就業区分はテキスト型、支給区分はYes/No型で、 就業区分内には「正社員」「準社員」「その他」があり、 「その他」の場合、支給区分のEnableを無効にしたいです。 '---対象行を取得した際に飛ぶメソッド Private Sub SetFieldPropaties(bkm As Variant) Me.Bookmark = bkm If Me.就業区分 = "未確定" Then Me.就業区分.ForeColor = RGB(255, 0, 0) Me.支給区分.Enabled = False Else Me.就業区分.ForeColor = RGB(0, 0, 0) Me.支給区分.Enabled = True End If End Sub Me.就業区分とMe.支給区分の2項目の変更が上手い事行かないです… 情報が少なければご指摘ください。よろしくお願いします。

  • Access2000 サブフォームで選択したレコードをコピーするには?

    フォームにサブフォームとボタンを配置しています。 サブフォームには複数のデータが表示してあります。 コピーしたいレコードを1つ以上選択して、ボタンを押下したときに現在表示しているレコードの下に 選択したレコードをコピーして追加したいのですが、その方法が分りません。 ご存知の方がいらっしゃいましたら、教えてください。 宜しくお願い致します。

  • ACCESSフォームのリストボックスでレコードが選択できない

    ACCESS2000です。 フォームの左側に親テーブルのフィールド1の値を選択させるリストボックスがあり、そこで選択したレコードにリンクする子テーブルのレコードをフォームの右側にサブフォームで表示させたいのですが、リストボックスでレコードを選択できません(クリックしても反転しません)。でもレコード移動ボタンを押すと、リストボックス内の該当レコードがちゃんと反転し、右側のサブフォームにも正しく反映します。 リストボックスのプロパティはくまなく見ましたがそれらしい設定項目はみつかりませんでした。どこを直せばよいのでしょうか。

  • Access サブフォームでの複数行選択

    いつも助けて頂いてます 分かる方がいらっしゃいましたらご教授お願いします Accessのサブフォームで1行目と5行目等Ctrlを押しながら Excelの様に行を飛ばしてマウスで選択することは可能でしょうか? 宜しくお願いします

  • Accessサブフォームの表示について

    はじめまして、yossy136kgと申します。 Microsoft Access2003のメインフォーム、サブフォームに関して下記の件、ご教授願います。 メインフォーム、サブフォームを作成しリンクして、あるテーブルのレコードをサブフォームに表示されることが確認できている状況です。 サブフォームのRecordSourceに設定しているテーブルに【複数件レコードがある】状態に対して、検索条件に満たない場合空の状態でサブフォームは表示出来ています。 確認したいことは、サブフォームのRecordSourceに設定しているテーブルが【0件(レコードがない)】の状態に対して、サブフォームを空の状態で表示することは出来ますでしょうか? 現状、サブフォームは非表示となっています。 ※ダミーデータを入れてそれを表示対象とするしかないのでしょうか? 何かご不明な点がありましたご指摘ください。 以上、宜しくお願い致します。

  • Access サブフォームの背景色

    開発環境はAccess 97です。 テーブルAとテーブルBを結合した選択クエリABを レコードソースとするフォームを作りたいと思います。 サブフォームを使用し、レコードの内容はデータシート 形式で表示したいのですが、ソースがテーブルAの項目 に対する更新は制限したいため、編集ロックプロパティを [はい]に設定しました。 編集ロックがかかっている項目は視覚的にそうと わかるよう、背景色を変えたいのですが可能でしょうか? 過去ログを調べたら「可能」「不可能」両方の回答が ありました。

  • サブフォームにラジヲボタンを・・・つけたい・・・みたいな

    access2007でサブフォームにテーブルレコードを表示して、レコードセレクタの代わりにラジヲボタンを付けてレコードを選択できるようにしたいのですが・・・ボタンを押すと全部のレコードが選択されてしまいます。ラジヲボタンでは不可能なのでしょうか?教えてください。 (普通の選択ボタンみたいなのでもいいのですが・・・見た目的に・・・です)