- ベストアンサー
VBAでTabキーを移動させたい
Access上のフォームで、ある結果がテキストボックスに表示されたときのみ、AというコマンドにTabキーを自動的に移動させたいのですが、 1.イベントプロシージャはフォーカス取得後なのか、喪失時なのか 2.VBAはIf文でどうかけばよいのか うまくいかなくて困っています。ご回答お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「Aというコマンド」とはコマンドボタンでしょうか?とりあえずそういうことで進めます。テキストボックスの名前は「txtB」とします。 Bにコントロールがあり、その内容が更新されて求める値「xxx」になった場合に、Aにフォーカスを移動する>Bの更新後のイベントプロシジャーに、 if isnull(me!B) = false then if me!B = "xxx" then me!A.setfocus end if end if でフォーカスが移動しないですか?
その他の回答 (2)
- Tetsuro_M
- ベストアンサー率19% (4/21)
先ほどの補足になりますが、自動タブによる移動がセットフォーカスメソッドに優先してしまうので、正しくは「Bの更新後のイベントプロシジャーに」判断するif文を書くのでなく、「B」の次にフォーカスをゲットするフィールドのフォーカス取得時、またはフォーカス取得後のイベントプロシジャーに書いて試して見てください。
- ARC
- ベストアンサー率46% (643/1383)
「Aというコマンド」とは「Aというコントロール」のことでしょうか? 「Tabキーを自動的に移動」とは、「フォーカスを移動」のことでしょうか? もしそうでしたら、#1でTetsuro_M さんがお書きのように、SetFocusメソッド を使う、というのが答えになります。実行するタイミングについては、いつでもい いです。 もしこの解釈が違う、あるいは、この説明では分かりにくい、というのであれば、 補足にその旨をお書きください。ponponさんが悩んでおられる状況を具体的に書い ていただけると、より的確な答えが書けるかと思います。
補足
説明不足ですみませんでした. Tetsuro_Mさんの予測どおりです。#1下にも書かせていただきましたが ただ今Access自体を修復中です。ありがとうございました。 これからもよろしくお願いします。
補足
どうもありがとうございました.このページが開けず、なかなかお礼が出来ませんでした.すみません。 早速やってみたのですが、なぜか出来ないんです. 私のやりたいことはTetsuroMさんのおっしゃるとりなんですが… 質問する前に"docmd.go to control"でも試してみたんですけど、 どうやら原因は他のところにあるようです。 他のプロシージャも動かなかったりしますので、追求してみます。 これからもよろしくお願いいたします。