2016-03-11 243 views
-1

我已經創建了一個代碼,用於驗證所選日期不是過去。我使用DateTimePicker來選擇日期。代碼是將當前日期與Date.Now()比較當前日期爲PAST

' Validate Date Received 
If DateTimePicker1.Text <= Date.Now() Then 

    msg += "Enter a valid Date" & vbCr 

End If 

但是,如果我選擇當前日期,那麼msg會彈出,就好像日期是從過去一樣。

我正在使用VB.NET,並且有一個連接到Access數據庫。

+0

事實上,即時通訊大概使用VB6,對不起有人已經告訴我,我有一個區別,我不知道哪一個。 + =適用於msg部分,這意味着它可能不是VBA。 –

+0

@HansUp由於問題已更新?他說他在哪裏使用VBA? – Jay

+1

@Jay問題最初是用vba和access-vba標記的,沒有vb.net標記。你可以檢查[編輯歷史](http://stackoverflow.com/posts/35946000/revisions) – HansUp

回答

0

是你的datetimepicker讓用戶選擇一個日期和時間,或只是一個日期?

如果它只是一個日期,則DateTime對象的時間部分將是0,即午夜。 now()返回當前時間的日期,通常會晚於午夜。

試着比較今天()而不是現在()。

+0

如果你讀過我以前的評論,請忽略。我注意到我的邏輯是錯誤的,改變Now to Today確實解決了這個問題。非常感謝 –

0

正如@HansUp說 - +=是不是在VBA和neithers Date.Now()
Now()將返回的日期和時間,因此時間通常晚於DateTimePicker1選擇了午夜,我不認爲在文本框中的值將作爲日期來處理,就像文本。

試試沿着線:

CDate(Forms("Form1").Controls("DateTimePicker1").Text) = Date 

在另一方面,如果你正在使用VB.Net我的代碼可能不會工作。

+0

我想我使用VB6,絕對不是VB.NET。我在哪裏放入這行代碼?你確定語音標記是圍繞form1和DateTimePicker1嗎? –

+0

我有一個單獨的驗證方法,當我單擊表單上的一個按鈕來保存記錄時使用。如果驗證成功,則信息被保存。那麼我應該在哪裏放這個代碼? –

+0

@KamilLazarowicz - *「絕對不是VB.NET」* - 你確定嗎?你提供的代碼看起來很像VB.NET代碼。 –