2013-09-25 54 views
0

我目前正在爲學校開展一個項目,它包含一個登錄和註冊系統。'If'聲明部分未進行

這是我所做的一個功能。 「採納」變量將被傳回主程序。

Dim taken As Boolean 
Dim temp As String 
For counter = 1 To totalrecords 
    FileGet(1, player_info) 
    temp = player_info.username 
    If TextBox2.Text = temp Then 
     msgbox("this is a messagebox") 
     taken = True 
    End If 
Next 

這是檢查是否有任何用戶名正在使用的代碼的一部分。如果是這樣,採取=真,然後顯示一條消息。

現在,由於某種原因,if語句部分沒有執行。消息框根本不顯示。我已經通過使用多個相同的用戶名進行了測試,並且第二個(相同)用戶名仍然被添加到文件中。我很困惑。

部分我認爲是不工作 -

If TextBox2.Text = temp Then 
    taken = True 
End If 
+1

如果它根本沒有執行,那麼有些奇怪。也許你的測試總是失敗。嘗試添加一個'else'子句並且有'msgbox'('這是else子句')'。您可能會收到該消息,在這種情況下,您必須弄清楚爲什麼您的平等測試失敗。 –

+0

'totalRecords'的價值是什麼?如果它是零,那麼for循環從不執行。在循環的第一行放置一個斷點,然後檢查totalRecords – Steve

+0

的值。將一個msgbox放在你的'FileGet'行之前。這會告訴你是否有任何'totalrecords'。你甚至可能不會陷入循環。 – Steve

回答

0

您應該使用String.Equals(String1中,字符串)比較文本框的文本和臨時變量。 在你的情況下,它應該寫成這樣。

If String.Equals(TextBox2.Text, temp) Then 
    taken = true 
End if 
+0

感謝您的回覆,但它仍然繼續製作帳戶。 我不知道什麼是錯,我很困惑。 有沒有其他想法? –

+0

爲什麼要使用String.Equals?比較運算符(=)被重載以正確比較字符串,並且它更具可讀性。 –