【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

Win2000、アクセス2000を使用しています。
日付を入力するテキストボックスの更新後処理に以下のVBを組みました。

Private Sub 発送日_AfterUpdate()

If Me![発送日] < Me![受注日] Then
MsgBox "受注日より前の日付を入力しています。" & vbNewLine & "訂正してください。", _
vbOKOnly + vbExclamation, "発送日"

End If

Me!発送日.SetFocus

End Sub

ところが、[発送日]のテキストボックスではなく、次のテキストボックスにカーソルが行ってしまいます。
ちなみに[発送日][受注日]ともプロパティで「g ee\.mm\.dd」という書式を設定しています。
書式の設定とは関係ないと思いますが…
よろしくお願いします。

A 回答 (6件)

AfterUpdateイベントだけで処理するのであれば



 Me!発送日.SetFocus の代わりに

SendKeys "+{TAB}"

でどうですか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
できました!
一つの動きでいろいろな方法があるんですね。
またまた勉強になりました。
みなさん本当にありがとうございました。

お礼日時:2003/11/13 10:36

なぜだかわかりませんが


Me.受注日.SetFocus
Me.発送日.SetFocus
のように一度発送日以外へフォーカスしたあとなら
うまく移動できるみたいです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
できました!
1つ前にもどしてから次へということですね。
これで作業が進みます。

お礼日時:2003/11/13 10:35

BefereUpdateで、Cancelを使うとカーソルは移動しません。



Private Sub 発送日_BeforeUpdate(Cancel As Integer)

If Me![発送日] < Me![受注日] Then
MsgBox "受注日より前の日付を入力しています。" & vbNewLine & "訂正してください。", _
vbOKOnly + vbExclamation, "発送日"

Cancel = True ← ※発送日が受注日より前の時のみエラーであれば、If節の中に書きましょう。

End If

End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
できました!
これで作業が進みます。

お礼日時:2003/11/13 10:34

enter(フォーカス取得時)ではまずいですね。


LostFocus(フォーカス喪失後)か
exit(フォーカス喪失時)ではどうでしょうか。

あれあれ、
IF文の外に発送日のセットフォーカスがありますが、これでは正しい日付を入れてもタブが動かないですね。

これのせいで無効になっているのでしょうか?
自信ありませんが、endifの前にMe!発送日.SetFocus 書いてみてください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
 endifの前にMe!発送日.SetFocus
これはやってみましたが、だめでした。
 LostFocus(フォーカス喪失後)か
 exit(フォーカス喪失時)
これを試してみます。

お礼日時:2003/11/13 09:13

確認していないのですが、AfterUpdateではなく、BeforeUpdateか、enterで試してみてください。

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
BeforeUpdate()でも同じように次のテキストボックスへ行ってしまいます。
Enterでというのは、どのようにすればいいのでしょうか?
詳しく教えてくださいませんか?

お礼日時:2003/11/12 20:34

BeforeUpdate()ではだめでしょうか?


また、発送日の入力ボックスの一つ前のTAB順番を設定してみるのはいかがでしょうか?
あくまで検証していないので申し訳ないです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
BeforeUpdate()でも同じように次のテキストボックスへ行ってしまいます。
1つ前のテキストボックスに行くようにしたところ、そのまま発送日の1つ前のテキストボックスへカーソルが行きました。(ToT)
なぜなんでしょうかね~

お礼日時:2003/11/12 20:32

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