プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。

2つのテキストボックスそれぞれに入っている日付を
同じ日付または次の日ならOKでそれ以外ならエラーを出すように比較したいのですが、
次の日をどのように表したらいいのか分かりません。


始めは、テキストボックスに入っている日付を文字列で"20010329"のように表して、
これと同じか "+1"ならOKとしていたのですが、
よく考えたら3月31日と4月1日なら"20010331"と"20010401"となり
うまくいきません。
何か良い方法はないでしょうか?

A 回答 (3件)

テキストボックスじゃなくて、DateTimePickerとかを使ったほうが、日付入力は簡単だと思います。



日付の比較は、Date型の変数で行うといいでしょう。
    • good
    • 0
この回答へのお礼

こんにちは。早速、ご返事ありがとうございます。

DateTimePickerっていうのがあったんですね~。
早速ヘルプで調べてみました。

テキストボックスのがうまく動作するようになったので、こちらでも
チャレンジしたいと思います。

本当にありがとうございました。

お礼日時:2001/03/29 16:09

DateDiff関数を使用してはどうでしょうか。


ご質問の日付を使って記述例を挙げてみます。

If DateDiff("d", "2001/03/31","2001/04/01") = 1 Then

これで翌日を判断することができるはずです。
ちなみに"d"は時間間隔モードで、日での比較を行うという意味です。
この方法ならテキストボックスからの値で比較できるのではないでしょうか。
(内部処理はDate型です)
    • good
    • 0
この回答へのお礼

こんにちは。早速ご返事ありがとうございました。

教えていただいた通り、DateDiff関数を使って翌日判定が
できました。

本当にありがとうございました。
もっともっと勉強して、早く一人前になれるようにがんばります。

お礼日時:2001/03/29 16:03

日付が正しく6桁で入力されているという前提で、以下のよ


うにしてはどうでしょうか?

'*************************************************
sDate = "20010331"
sDate2 = "20010401"

sDate = Left$(sDate ,4) & "/" & Mid$(sDate, 5, 2) & "/" & Mid$(sDate, 7, 2)

sDate2 = Left$(sDate2 ,4) & "/" & Mid$(sDate2, 5, 2) & "/" & Mid$(sDate2, 7, 2)

If DateValue(sDate2) - DateValue(sDate) = 0 then
Msgbox "同じ日付"
Elseif DateValue(sDate2) - DateValue(sDate) = 1 then
Msgbox "次の日"
Else
Msgbox "それ以外"
End If

'*************************************************

みばえが悪いので適当に修正してください。
変数等は宣言してください。

以上、参考になれば幸いです。
    • good
    • 0
この回答へのお礼

こんにちは。早速ご返事ありがとうございました。

tom777さんの教えて下さったのを参考にして、修正してうまく動作するように
なりました。
本当にありがとうございました。もっともっと勉強して一人前になれるように
がんばります。

お礼日時:2001/03/29 15:57

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