2016-03-08 61 views
0

我用盡並取得了非常簡單的代碼只是爲了嘗試和驗證一個文本框。這是用戶的輸入日期。每次我得到Else代碼都意味着日期未被正確驗證。任何想法如何使其工作?如何驗證用戶輸入的是用VB中則IsDate()

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If IsDate(TextBox1) Then 
     MsgBox("well done") 
    Else 
     MsgBox("you failed") 
    End If 
End Sub 
+0

嘗試將此值設置爲日期數據類型。 –

回答

0

要在文本框不是文本框本身的價值。更改爲TextBox1.Text

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If IsDate(TextBox1.Text) Then 
     MsgBox("well done") 
    Else 
     MsgBox("you failed") 
    End If 
End Sub 
+0

是的是的工作非常感謝 –

+1

沒有,別的東西是怎麼回事,至少如果這是VB6(我不知道VBA)。文本框控件的默認屬性是Text屬性,因此「IsDate(TextBox1)」與「IsDate(TextBox1.Text)」相同。 – MarkL

+0

@MarkL我可以確認你描述的行爲與vba 7.0中的行爲完全一樣。所以我不確定他是否在使用舊的東西,或者如果你說這是其他事情。 – Gratzy

0

大家都知道,IsDate功能可以提供幾個問題,即:

IsDate("13.50") 'returns True 
IsDate("12.25.2010") 'may return False/True 
        'depending on current culture (OS date-time settings) 

到這裏看看:IsDate function returns unexpected results

我強烈建議使用CDate()功能,它返回適當的日期或導致轉換錯誤。

https://msdn.microsoft.com/en-us/library/2dt118h2%28v=vs.84%29.aspx

注:我會建議vaule進入CDate功能的ISO標準格式:yyyy/MM/dd,以確保轉換將返回正確的日期(時間)。