2016-08-15 100 views
0

所以我現在掙扎着如何讓我的程序在VB6中工作。命令按鈕的功能是當TLoginR.text在數據庫中具有相同的文本時,它將顯示一個消息框,指出「用戶名不可用...」。現在是這個問題,當我輸入一個新文本並且不在數據庫中時,提示仍然彈出。我慷慨地需要幫助謝謝。做數據庫直到註冊

代碼:

Private Sub CRegR_Click() 

    Dim user as string 
    Dim pass as string 
    Dim prompt as string 

    RegR.Refresh 
    user = TLoginR.Text 
    pass = TPassR.Text 

    Do Until Regr.Recordset.EOF 
     If RegR.Recordset.Fields("Username").Value = user Then 
     prompt = MsgBox("Username not available, please try another one!", vbOKCancel) 
     If (prompt = 1) Then 
      TLoginR.Text = "" 
      TPassR.Text = "" 
      Register.show 
     Else 
     End If 
     Exit Sub 
     Else 
     RegR.Recordset.MoveNext 
     End If 
    Loop 

    RegR.Recordset.Fields("Username").value = user 
    RegR.Recordset.Fields("Password").value = pass 
    RegR.Recordset.Update 
    Register.Hide 
    Login.Show 

End Sub 
+0

您確定'RegR.Recordset'只檢索一條記錄嗎?可能是檢索到多個記錄,並且您輸入的文本是其中一個記錄中的某處。 –

+0

是的,先生。我只想驗證TLoginR.text中的文本是否在「用戶名」字段下沒有記錄,如果存在,則會顯示一條消息,提示「用戶名不可用...」,如果不,那麼它會重新添加到記錄中。 –

+0

你需要開始做一些基本的故障排除。在循環之前爲用戶添加一個debug.Print語句,並查看它是否是您的想法。或者至少將它添加到您的msgbox告訴用戶他們嘗試輸入的內容。另外debug.print你的field.username。最後使用常量vbOK而不是1來檢查提示響應時的可讀性 – dbmitch

回答

0

我打算讓你的記錄包含表中每個記錄的假設。我還假設你在其他地方防止空的用戶名。我懷疑你可能有你不希望擁有的記錄,因爲在開始迭代之前,你並沒有將記錄集移到第一條記錄。但是,這是基於我所做的假設,因爲我們無法看到該代碼。

Private Sub CRegR_Click() 

    Dim user As String 
    Dim pass As String 
    Dim prompt As String 

    RegR.Refresh 
    user = TLoginR.Text 
    pass = TPassR.Text 

    RegR.Recordset.MoveFirst 'return to the first record 
    Do Until RegR.Recordset.EOF 
     If StrComp(RegR.Recordset.Fields("Username").Value, user, vbTextCompare) = 0 Then 
     prompt = MsgBox("Username not available, please try another one!", vbOKCancel) 

     If (prompt = vbOK) Then 
      TLoginR.Text = "" 
      TPassR.Text = "" 
      Register.Show 
     Else 
      'do domething? 
     End If 

     Exit Sub 
     Else 
     RegR.Recordset.MoveNext 
     End If 
    Loop 

    RegR.Recordset.Fields("Username").Value = user 
    RegR.Recordset.Fields("Password").Value = pass 
    RegR.Recordset.Update 
    Register.Hide 
    Login.Show 

End Sub