我已經被分配寫一個程序來保存關於films的數據。我們需要使用vb.Im中的窗體來嘗試驗證文本框的數據輸入。輸入的文本必須是數字和必須是4個字符長。我試圖解決的問題是,一旦它看到了我希望程序允許用戶在文本框中重新輸入一個值的值,而是一直查看文本框在隨後說,這是不正確的格式,而不讓用戶輸入正確value.here是代碼,只是到目前爲止驗證:VB驗證不斷循環
Dim PassValidate As Boolean = False
ReadFilmData()
NOFilms = NOFilms + 1
ReDim Preserve Film(NOFilms)
'Validate before it is saved to the file'
Do
If IsNumeric(Me.txtFilmID.Text) = True Then
If Me.txtFilmID.TextLength = 0 Then
'Presence check'
MsgBox("You are required to provide a value for the film ID")
ElseIf Me.txtFilmID.TextLength > 4 Then
'Length Check'
MsgBox("The film ID must be 4 numbers long")
ElseIf Me.txtFilmID.TextLength = 4 Then
PassValidate = True
End If
End If
If IsNumeric(Me.txtFilmID.Text) = False Then
MsgBox("The film ID must be a set of numbers ")
End If
If PassValidate = False Then
txtFilmID.Text = ""
MsgBox("Re-enter the value for Film ID")
Call SaveFilmData()
End If
If PassValidate = True Then
Film(NOFilms).FilmID = txtFilmID.Text
End If
Loop Until PassValidate = True
它保持循環,因爲它是一個循環。用戶沒有機會重新輸入或修復錯誤 – Plutonix
@Plutonix否,該循環的條件爲「Loop Until PassValidate = True」! – duDE
您需要決定這是[tag:vba]還是[tag:vb.net] - VBA UserForm與VB.NET/WinForms Form沒有多大關係。看着'As Boolean = False'聲明,這必須是.net代碼。這就是說你將布爾值初始化爲默認值,這是多餘的。 –