いつもお世話になっております。
質問させてください。m(_ _)m
Accessで、サブフォームのあるフォームを作成すると、同一フォーム内のフィールド移動は「Enter」で動きますが、フォーム間の移動は「Ctrl+tab」になります。
画面に表示されているフィールド間全部を(サブフォームであってもなくても関係なく)「Enter」キーのみで移動していく方法はありますか?
あればその方法を教えてください。
移動順序も変えられたらありがたいです。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
> 移動順序も変えられたらありがたいです。
タブ移動順のことでしたら、プロパティシートで指定できます。
1)フォームをデザインビューで開く
(Access2000以降ならフォームビューでも可)
2)右クリックメニューなどでプロパティシートを開く
3)コントロールのどれかを選択
4)「その他」タブの「タブ移動順」にカーソルを移動させ、右端に表示される
「...」をクリック
5)「タブオーダー」ダイアログが表示されるので、クリック&ドラッグで各コント
ロールの移動順序を編集(詳細/ヘッダ/フッタでそれぞれ別なので注意)
6)「OK」をクリックして「タブオーダー」ダイアログを閉じる
7)フォームを保存
・・・以上です。
(上記の方法ではなく、数字自体を編集すると変な結果になることがあるので
注意して下さい)
------------------------------
> 画面に表示されているフィールド間全部を(サブフォームであってもなくても
> 関係なく)「Enter」キーのみで移動していく方法はありますか?
残念ながら、私の知っている範囲では、その方法は用意されていません。
なので、自作するしかありません。
で、自作するにしても、
A)FunctionまたはSubとして用意して使い回し
B)フォーム毎に個別でコード作成
の2通りの対応がありますが、「A」の方法は色々と考えなければならないことが
多すぎて、かなり厳しいです。
(例えば、ヘッダ/フッタの有無、レコード移動の可否(連結/非連結フォームの
切り分け)、新規レコードの表示の有無(メインフォームに戻るのは最後の
レコードの時か新規レコードの時か)・・・等を判定するコードが必要)
なので、当面はフォーム個別で対応されることをお薦めします。
方法の一例としては・・・メインフォーム・サブフォームにフォーカスを飛ばすための
コントロールを設置する、という方法があります。
例えばフォームの構成が
メインフォーム;フォーム名=MF
TB1,TB2(テキストボックス),SF1(サブフォーム),Cmd1,Cmd2(コマンドボタン)
サブフォーム;フォーム名=SF (SF1のソースオブジェクト)
Tx1,Tx2,Tx3(テキストボックス)
だったとします。
メインフォームに「Prv」「Nxt」、サブフォームに「Rtn」「Ext」というコントロール
(例えばオプションボタン等)を設置し、それぞれのタブ移動順を、
メインフォーム ; TB1→TB2→Prv→SF1→Nxt→Cmd1→Cmd2
サブフォーム ; Rtn→Tx1→Tx2→Tx3→Ext
となるように設定します。
そうしたら、メインフォームの「Prv」「Nxt」の「フォーカス取得後」イベントに
以下のコードを記述します;
Private Sub Prv_GotFocus() '「→」「Tab」キー等で移動時
On Error GoTo エラー処理
'サブフォームの先頭レコードに移動
SF1.SetFocus
With SF1.Form
!Tx1.SetFocus
DoCmd.GoToRecord , , acFirst
End With
終了処理:
Exit Sub
エラー処理:
MsgBox Err & ":" & Error$, , Me.Name & " Prv"
Resume 終了処理
End Sub
Private Sub Nxt_GotFocus() '「←」「Shift+Tab」等で移動時
On Error GoTo エラー処理
'サブフォームの新規レコードに移動
SF1.SetFocus
With SF1.Form
!Tx3.SetFocus
DoCmd.GoToRecord , , acNewRec
End With
終了処理:
Exit Sub
エラー処理:
MsgBox Err & ":" & Error$, , Me.Name & " Nxt"
Resume 終了処理
End Sub
次に、サブフォームの「Rtn」「Ext」の「フォーカス取得後」イベント;
Private Sub Ext_GotFocus() '「→」「Tab」キー等で移動時
On Error GoTo エラー処理
'新規レコードの場合はメインフォームに戻る
If Me.NewRecord Then
Tx3.SetFocus
Me.Parent!Cmd1.SetFocus
Else
Tx1.SetFocus
DoCmd.GoToRecord , , acNext
End If
終了処理:
Exit Sub
エラー処理:
MsgBox Err & ":" & Error$, , Me.Name & " Ext"
Resume 終了処理
End Sub
Private Sub Rtn_GotFocus() '「←」「Shift+Tab」等で移動時
On Error GoTo エラー処理
'先頭レコードの場合はメインフォームに戻る
If Me.CurrentRecord = 1 Then
Tx1.SetFocus
Me.Parent!TB2.SetFocus
Else
Tx3.SetFocus
DoCmd.GoToRecord , , acPrevious
End If
終了処理:
Exit Sub
エラー処理:
MsgBox Err & ":" & Error$, , Me.Name & " Rtn"
Resume 終了処理
End Sub
さらに、サブフォームの「開くとき」イベント;
Private Sub Form_Open(Cancel As Integer)
On Error GoTo エラー処理
Tx1.SetFocus
終了処理:
Exit Sub
エラー処理:
MsgBox Err & ":" & Error$, , Me.Name & " Open"
Resume 終了処理
End Sub
・・・以上です。
なお、「Rtn」等のコントロールはクリックした場合も同じ動作をするので、
他のコントロールと重ねた上で、メニューで「書式(O)→最背面に移動(K)」
として、ユーザーの目から隠しておくことをお薦めします。
お礼が遅くなりまして、大変失礼致しました。
非常に丁寧なご回答、本当にありがとうございました。
少し難しそうですが、挑戦してみたいと思います。
不明な点がありましたら、補足させていただくかもしれませんので、まだ質問は締め切りませんが・・・
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 楽器・演奏 ★この考え方 どう思われますかぁ? 5 2023/06/08 16:44
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Accessフォームで複数条件でフィールドの値を表示する方法 4 2022/07/21 10:47
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- JavaScript テーブルの中のセレクトボックスの値が0のとき、非表示にしたい 3 2022/05/29 10:13
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】NEW演歌
【大喜利】 若い人に向けたことは分かるけど、それはちょっと寄せ過ぎて変になってないか?と思った演歌の歌詞
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
Access2010 Enterで次テキストへ移動
その他(Microsoft Office)
-
ACCESSのサブフォームからメインフォームへの移動
Access(アクセス)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
-
4
ACCESSのフォームで次のレコードに移動しない方法を教えてください
その他(データベース)
-
5
アクセスのレポートに、フォームで算出した数字を表示させたい
Access(アクセス)
-
6
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
7
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
8
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
9
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
10
Accessでフォームから別フォームのテキストボックスの値を設定する
Visual Basic(VBA)
-
11
ACCESSで値を代入できないとは?
Visual Basic(VBA)
-
12
Access での 「年」 のみの和暦変換について
Windows Vista・XP
-
13
どこにもフォーカスを当てたくない
Access(アクセス)
-
14
access サブフォームにリストを表示させたいが一件しかレコードが表示されない
Access(アクセス)
-
15
Returnに対するGoSubがありません
Access(アクセス)
-
16
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
17
コンボボックスで選択したものをクリアーしたい(アクセス VBA)
Access(アクセス)
-
18
アクセスでレコードの内容が変更されたかどうかを調べるには
Access(アクセス)
-
19
Accessのサブフォームから値を参照する方法について
その他(データベース)
-
20
選択したチェックボックスのみチェックを入れたいのですが
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access サブフォームでの選択行...
-
ACCSESS2013VBA フォームのレコ...
-
[Access]複数のサブフォームで1...
-
AccessのDoCmd.ApplyFilterの使...
-
(ACCESS)条件に応じて、テキ...
-
Access2000、これはいったい・...
-
Accessで、サブフォームのある...
-
ACCESS サブフォームのフィール...
-
サブフォームが見えなくなる。
-
Access 複数フォームを...
-
ACCESS サブフォームでのエラー
-
access サブフォームにリストを...
-
AccessのFormのみをスクリーン...
-
コンボボックスで選択実行後、...
-
2回目に画面のレコードセットの...
-
サブフォームでのダブルクリッ...
-
Access VBA サブフォームの更新
-
Accessのサブフォームから値を...
-
Accessでサブフォームの中の並...
-
Accessでのフォーム表示がうま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access2000、これはいったい・...
-
(ACCESS)条件に応じて、テキ...
-
Access 複数フォームを...
-
access サブフォームにリストを...
-
ACCSESS2013VBA フォームのレコ...
-
Accessで、一覧からクリックし...
-
googleフォームでインストール...
-
サブフォームが見えなくなる。
-
Access2000 サブフォームのReco...
-
Accessで、サブフォームのある...
-
Accessのサブフォームから値を...
-
アクセスでサブフォームのレコ...
-
サブフォームのデータを保存す...
-
Accessでのフォーム表示がうま...
-
サブフォームでのダブルクリッ...
-
2回目に画面のレコードセットの...
-
AccessのFormのみをスクリーン...
-
アクセスで サブフォームの表...
-
ACCESSでfilterとorderbyについて
おすすめ情報