dポイントプレゼントキャンペーン実施中!

Accessのマクロでコントロールの移動のコマンドを実行しようとするのですが、どうもうまくいきません。
時間計算でA~Bの時間をdatediffで計算させ、その答えが負(マイナス)の場合はもう一度Bの時間を聞き直すというものを作る過程で、再入力を促すメッセージのあとBの値にNullを代入して、コントロールの移動でBにフォーカスを移動したいのですが、どうしてもBにフォーカスが移らず、Bの次のタブ順のコントロールにフォーカスが移動してしまいます。どなたかいいアドバイスください。

A 回答 (2件)

「フォーカス喪失時」イベントであれば


わざわざフォーカスを移動しなくても
マクロで「イベントのキャンセル」を実行すれば
テキストボックスへの再入力を促せますよ。
あとは「フォーカス喪失時」ではなく「フォーカス喪失後」イベントにしてみるとか…
それでも解決しない場合、
フォーム自体にも何かイベントが使われているかどうか気になるところです。
    • good
    • 0
この回答へのお礼

「イベントのキャンセル」で解決しました。どうもありがとうございました。
これからもよろしくお願いします。

お礼日時:2002/04/30 22:40

あまり関係無いかもしれませんが


まず最初に以下を試してみて下さい。
BにNullをセット→Bにフォーカス移動
の順ではなく、
Bにフォーカス移動→BにNullをセット
の手順に変更。

それでダメな場合、
とりあえず、コントロールの移動先にBが指定してあるのは間違いではないですよね(^^;
それから、マクロ内でコントロールを移動させた後、
他のコントロールに移動させる処理は含まれていませんよね。
一応上にあげた、うっかりミスは無いものとして他の可能性を…
まず、コントロールB(テキストボックスですよね?)には
何かイベントが設定されていますでしょうか?
たとえば、「フォーカス取得後」等のイベントが設定してある場合は、その内容次第では
次のコントロールにフォーカスが移動してしまう可能性もありますし…
あと、移動先のコントロールを他のコントロール(タブ移動順で前後のコントロールとか)
に指定してみた場合はどうなりますでしょう?
そのあたりを追記願えますでしょうか。

この回答への補足

うっかりミスの確認とタブ移動順を変更の確認は済です。ただ、「フォーカス喪失時」でマクロの起動をおこなうようにしています。Bの値が入力された後に非連結のテキストボックスに計算値を代入するようにしているのですが、これがいけないのでしょうか?またそうであれば、どの時点でマクロとつなげばいいのでしょう?

補足日時:2002/04/30 12:58
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!