2017-03-16 5 views
0

日付を比較する際に問題があります。私のコードのif文はendDateがそれほど小さくないと言っています。たとえば、endDateが2/20/2017でstartDateが2/22/2017の場合、ifステートメントはendDateが不安ではないと言いますが、そうではありません。アクセスVBA比較日が動作しない

Dim startDate As Date 
    Dim endDate As Date 

     startDate = DateValue(Me.dueDateTxt) 
     endDate = DateValue(Me.shippedDate) 

     If (endDate < startDate) Then 
      Debug.Print "It is less" 
     Else 
      Debug.Print "not less" 
     End If 

また、私はどこかで助けに前もって感謝する何かが足りないのです

If Me.dueDateTxt < Me.ShippedDate Then 
    If CDate(startDate) < CDate(endDate) Then   
    If Format(startDate, "mm/dd/yyyy") < Format(endDate, "mm/dd/yyyy") Then 
    If DateDiff(d, startDate, endDate) > 0 Then 

を試してみました!

編集:私は問題が何かを考え出しました。休日や週末を排除する機能があります。その関数は私のstartDateとendDateをスワップしていました。皆様のご協力とご支援をいただき、ありがとうございます。

+0

国際的な日付、yyyy-mm-ddを試しましたか? – Fionnuala

+0

私はまだそれを試みていません。テキストボックスから実装された日付は、mm/dd/yyyyとなります。私はそれらを比較する前に形式を変更する必要がありますか? – Kevin

+0

VBAでは、国際日付形式を使用することをお勧めします。あなたはこれを得るためにFORMATを使うことができます。 – Fionnuala

答えて

1

あなたの最初のコードブロックがうまく動作します。

テキストボックス(?)の形式を「短い日付」として設定しましたか?

+0

私は何が起こっていたのか考え出しました。休日や週末を排除する機能があります。その関数は私のstartDateとendDateをスワップしていました。今度はそれを見つけるのに苦労しました。ご回答いただきありがとうございます。 – Kevin

関連する問題