2016-11-02 107 views
0

我已經被分配寫一個程序來保存關於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 
+5

它保持循環,因爲它是一個循環。用戶沒有機會重新輸入或修復錯誤 – Plutonix

+0

@Plutonix否,該循環的條件爲「Loop Until PassValidate = True」! – duDE

+0

您需要決定這是[tag:vba]還是[tag:vb.net] - VBA UserForm與VB.NET/WinForms Form沒有多大關係。看着'As Boolean = False'聲明,這必須是.net代碼。這就是說你將布爾值初始化爲默認值,這是多餘的。 –

回答

0

嘗試取出Do循環,似乎沒有成爲一個需要循環。