ACCESS サブフォームのフィールドにカーソルをあてる

このQ&Aのポイント
  • ACCESS2003で、VBAで簡単なプログラムを作っています。フォームAからフォームBを開き、フォームAの番号と一致するデータをフォームBに表示します。フォームBにはサブフォームCが埋め込まれており、その中のフィールドDにカーソルを入れたいですが、エラーが発生します。
  • 使用しているプログラムはACCESS2003のVBAで、フォームAからフォームBを開く際に、フォームAの番号と一致するデータをフォームBに表示する動作を行っています。ただし、フォームBにはサブフォームCが埋め込まれていて、その中のフィールドDにカーソルを入れたいのですが、エラーが発生しています。
  • ACCESS2003のVBAを使用して、フォームAからフォームBを開いた際に、フォームAの番号に対応するデータをフォームBに表示するプログラムを作成しています。ただし、フォームBにはサブフォームCが含まれており、その中のフィールドDにカーソルを入れることを試みていますが、エラーが発生しています。
回答を見る
  • ベストアンサー

ACCESS サブフォームのフィールドにカーソルをあてる

ACCESS2003で、VBAで簡単なプログラムを作っています。 <やっていること> ・フォームAからフォームBを開きます。 ・そのときにフォームAの番号と一致するデータをフォームBに表示します。 ・フォームBにはサブフォームCが埋め込んでいます。 このサブフォームCの中のフィールドDにカーソルが入っているようにしたいのですが、 Forms!サブフォームC!フィールドD.setfocus としたら、「カレントレコードには、フィールドDという名前のフィールドはありません」というエラーがでます。 フィールドDというフィールドは存在しています。 このような場合、どのように記述するのがよろしいのでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • a3453a
  • ベストアンサー率28% (132/460)
回答No.1

次の方法でできるように思いますが。。。。。 VBAではなくてプロパティ利用の方法ですが・・・ ・フォームBでのサブフォームCを埋める場所(項目)の  プロパティで、「タブ移動順」を 0 にする ・フォームC(項目)の フィールドDの  プロパティで、「タブ移動順」を 0 にする -------------------------------------------------- 参考までですが サブフォーム内の項目指定は [FORMS]![親フォーム名]![サブフォーム名].[FORM]![フィールド名]  この後に必要なVBA命令を書く ここでのサブフォーム名とは親フォーム内で定義した項目名を使う で指名できると思います

haru163
質問者

お礼

ありがとうございました。 うまくいきました! サブフォームのときの記述間違っていました。

関連するQ&A

  • ACCESS VBAサブフォーム(DATA SHEET)の値の取得方法

    いつもお世話になっております。 ACCESS VBAでメインフォームに貼りついているサブフォームの値をとりたいのですが、うまくいっていません。 現状は module1でaをPublicで宣言 サブフォーム中のFORM_CURRENT()中で me.field1.setfocus a = me.field1.value として取得しています。 (実装ではメインのほうのボタンAを押したときに サブフォーム、FORM_CURRENT()で取得しておいた値を 別の変数に入れようとしています。) サブフォームのみで実行するとうまくいくようですが、 メインフォームに貼り付けるとうまくいかないようです。 (メインフォームに貼り付けて、サブフォームのFORM_CURRENTにブレイクを 貼って止めようとするが止まらない) そこでメインフォームボタンAクリックイベントで dim a1 as integer Forms![mainform]![subform].form.[field1].setfocus a1 = Forms![mainform]![subform].form.[field1].value として値をとろうと思ったのですが メインフォームからサブフォームにフォーカスをうつせない? らしく、サポートされていませんの旨のメッセージがでてしまいます。 やりたいこととしては、メインフォームに貼りついたサブフォームの 選択レコードのフィールド値を、メインフォームのボタンを押したときに 取得する。ということなのですが、うまくいっていません。 別の方法でもいいので、実現方法をご存知の方、よろしくお願いします。 ちなみにACCESSは2000を使用、ADOはサポートされていますがDAOは 非サポートのようです。

  • Access レコード移動時イベントでサブフォーム

    お世話になります。 親フォーム Aがあります。(データソースが存在します) その中にサブフォームBがあります。(データソースが存在します) 親フォームのレコード移動時のイベントで、いつもサブフォームのレコードの最後を表示したいのです。そこで・・・ 親フォームAの レコード移動時イベントに Private Sub Form_Current() Me.B.SetFocus DoCmd.GoToRecord , , acLast End Sub 上記を記述すると、一番初めはきちんとサブフォームBのレコードは最後を表示するのですが、以後、親フォームのレコードを動かすと、親フォームの最後のレコードをさしっぱなしになってしまいます。 Me.B.SetFocus DoCmd.GoToRecord , , acLast これの後にどんな記述をすれば、親フォームのレコードを動かすと同時にサブフォームBも最後の行に移るようにできますでしょうか? 何卒よろしくお願いいたします。

  • Access メインフォーム サブフォームにて

    お世話になります。 Accessにて メインフォームにコマンドボタンを置いて、クリックするとサブフォームのレコードが 次に行くようにしたいのですが、 コマンドボタン クリック Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus DoCmd.GoToRecord , , acNext メインフォームとサブフォームのレコードが次に行ってしまいます。 サブフォームだけ次のレコードに行くには、どのようにすれば良いのでしょうか。 分かる方教えて下さい。 宜しくお願いします。

  • Access2013サブフォームの背景色(2)

    サブフォームの先頭行のみ青色の背景色となってしまいます。 2行目以降は無色になっています。 カレント行には背景色がついてしまうでしょうか? 全て無色にする方法が知りたいのですが。 カーソルはメインフォームのコントロールにSetFocusしています。 サブフォームのフォームのプロパティ「レコードセレクタ」は「いいえ」に 設定しています。 何か他に設定するところがあるのでしょうか? フォームが開いた時にサブフォームのレコードセレクタが選択されるような作りにしたつもりはないのですが、もしそうであればどうやって解消すればいいのでしょうか?

  • Accessでのサブフォームの操作について

    Accessでのフォームの操作についてお教え下さい。 使用しているバージョンは2010です。 フォームAにボタンを設置し、フォームBを開くようにしました。 フォームAとBはIDで連携し、指定したレコードを開くようにしています。 フォームBには、サブフォームCがあります。 サブフォームCには複数のレコードが入っており、 こちらも指定したレコードを表示させてたいのですが方法が分かりません。 フォームAに設置したボタンを押すと、フォームBの指定したレコードを開き、 フォームB内にある、サブフォームCの指定したレコードを表示させたいです。 VBA等で制御することは可能でしょうか。 可能でしたら方法をお教え下さい。 宜しくお願いいたします。

  • Access2013 vbaサブフォームのレコード

    [Access2013 vba] ■したいこと サブフォームのレコードの中から、一レコードだけをチェックボックスなどで選択したいのですが、どのようにしたら出来ますでしょうか。 複数行選択は出来ないようにしたいです。 選択したのち、メインフォームの選択ボタンを押すと、そのレコードのID番号を取得して、呼出元のフォームのIDフィールドに代入したいです。 ■画面の流れ・・・ Aフォーム → 帳票型Bフォームで、レコードを選び「開く」ボタンを押す→ B 'メインフォームとCサブフォーム)が開く Cサブフォームのレコードをチェックボックスにチェックを入れて選択する B ' メインフォームの「選択」ボタンを押すと B ' メインフォームと、その前のBフォームが閉じて Aフォームに戻り、AフォームのIDフィールドに選択したIDが格納される。 よろしくお願いします。

  • 【Access】サブフォーム間のカーソル移動がわからなくて困っています。

    2つのサブフォームがあり、サブフォーム間のカーソル移動を実現したいのですが、 意図した動作にならず、困っております。 その為、下記の条件を満たす動作をご教示いただける方がいらっしゃいましたら、 ご教示の程、よろしくお願いします。 【条件】 1. Form1_SUBのfield2でEnterキー押下時、同じ行のForm2_SUBのIDに移動したいです (Form1_SUBの1行目のfield2でEnterキー押下時、 Form2_SUBの1行目のIDにカーソルを移動したいです。 下記のソースでは Form2_SUBの最後のカーソル位置があった行のIDに遷移してしまいます)。 2. Form2_SUBのfield2でEnterキー押下時、次の行のForm1_SUBのIDに移動したいです (Form2_SUBの1行目のfield2でEnterキー押下時、 Form1_SUBの2行目のIDにカーソルを移動したいです。 下記のソースでは Form1_SUBの最後のカーソル位置があった行のIDに遷移してしまいます)。 【フォーム名】 親:OYAFORM サブ:Form1_SUB(T1テーブルを連結した帳票フォームです。) サブ:Form2_SUB(T2テーブルを連結した帳票フォームです。) 【テーブル名】 T1(ID, field1, field2) T2(ID, field1, field2) 【F1_SUBのソース】 Private Sub field2_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then Forms!OYAFORM!Form2_SUB.SetFocus Forms!OYAFORM!Form2_SUB.Form!ID.SetFocus End If End Sub 【F2_SUBのソース】 Private Sub field2_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then Forms!OYAFORM!Form1_SUB.SetFocus Forms!OYAFORM!Form1_SUB.Form!ID.SetFocus End If End Sub 以上、よろしくお願いします。

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

    メインフォームとサブフォームのあるフォームを作成しました。メインフォームを入力してから、サブフォームを入力し、次のレコードへ移動するのにメインフォームの移動ボタンを押すと、次のレコードのカーソルがサブフォームのフィールドへ移動します。メインフォームに移動する方法はありませんか?

  • Accessサブフォームのレコード移動

    Accessにおいて、サブフォームのレコードの移動方法をどなたか教えてもらえませんか。「Forms![メインフォーム名]![サブフォーム名].Form.SetFocus DoCmd.GoToRecord acDataForm, "サブフォーム名", acNext」とコーディングしたのですがダメでした。よろしくお願い致します。

  • サブフォームからメインフォームのフィールドにエンターキーで移動したい

    ACCESS2000です。 フォームの中にサブフォームを作っています。 入力される都合で、フォームの中途にサブフォームがあります。このサブフォームのレコードの数は固定しています。(今は19です) サブフォームは帳票形式です。 サブフォームの最後のレコードでエンターキーやTABキーが押された時、メインフォームの指定するフィールドに移動するには、どうすれば良いでしょう。 使用者に特殊なキー操作を強要したくないので、VBAで記述したいのですが。

専門家に質問してみよう