• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォームでマクロ(レコード移動)発動後のカーソルの位置を先頭に指定したい!)

フォームでマクロ(レコード移動)発動後のカーソルの位置を先頭に指定したい!

このQ&Aのポイント
  • フォームでマクロ(レコード移動)発動後のカーソルの位置を先頭に指定する方法について教えてください。
  • 電話番号を入力すると、入会日をとばして新しい新規レコード作成の画面に飛ぶようにしたいです。
  • カーソルの位置までが電話番号のままになってしまうので、カーソルを会員番号の位置に持っていく方法を教えてください。

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

  • ベストアンサー
noname#140971
noname#140971
回答No.2

Q、VBAを使わずマクロで設定することは可能か? A、可能です。 1、マクロで[キー送信]を選ぶ。 2、送出するキーに次の<新規移動><先頭へ>を指定する。   ^({+}){HOME} Private Sub 電話番号_AfterUpdate()   SendKeys "^({+})", False   SendKeys "{HOME}", False End Sub 要は、このVBAをマクロにしただけです。 通常のAccessの操作でも{CTRL}{SHIFT}{+}で新規レコードに移動できます。 通常のAccessの操作でも{HOME}で先頭列に移動できます。 ^-------->CTRLキー。 ()------->SHIFTキー。 {+}------>+キー。 {HOME}--->HOMEキー。 という記述上の約束があります。 よって、マクロでも可能です。

nikomasa
質問者

お礼

^({+}){HOME} 早速貼り付けしました。 思うとおりに操作および修正が出来て大変助かっております。 ありがとうございました。 PS  ^(){+}{HOME} じゃないんですね?(規則性そのものが知らないので余計な質問を差し上げてしまってスミマセン。)

その他の回答 (1)

noname#140971
noname#140971
回答No.1

tab1: 会員番号__電話番号______入会日 _______1__1111-11-1111 _______2__2222-22-2222 これを基にした単票フォームですと [入会日].[タブストップ]=いいえ だけでレコード移動すると思います。 (もちろん、新しいレコードへは移動しませんが・・・) (遡り訂正を考えれば、普通は、これでOK) Private Sub Form_Current()   Me.会員番号.SetFocus End Sub 質問の件は、この1行で解決します。 なお、電話番号を入力すると新規レコードに移動は Private Sub 電話番号_AfterUpdate()   SendKeys "^({+})", False End Sub でも実現できます。 Private Sub 電話番号_AfterUpdate()   SendKeys "^({+})", False   SendKeys "^(+({HOME}))", False End Sub さらに、Me.会員番号.SetFocus を省いても SendKeys で先頭に移動させることも可です。

nikomasa
質問者

補足

何だかたくさんのコメントで恐縮ですが、あらかじめ予定日にはDate()が入っているのです。それにより予定日をいじる必要はまったくないからこそ、【電話番号】にて右クリック→プロパティ→更新後処理で私が望む次の新規レコード入力画面の移動が必要なのです。それなのにあわせて【電話番号】にまで新規移動時にカーソルが飛んでしまうのを防ぎたいのです。 説明がなっていなかったようですが、これでご理解いただけますでしょうか?単票形式で順序良く入力→電話番号のところにくる→入力してTABキー→新規でかつ会員番号のところにカーソルが届く。 これが理想です。 後半のご回答は早速試しますが、これはVBAか何かですか? あまり使ったことが無いのでよく判りません。 ということは、結論として、私のコメントにもありますが【新規レコード画面に飛ぶことは出来ても、電話番号に更新後処理(新規レコード作成byマクロ)を設定しまう以上、次に飛ぶ位置も電話番号となり、どうしても会員番号にカーソルを持ってくるにはVBAを使わずして設定することは出来ない】という結論で宜しいでしょうか?

関連するQ&A