2016-08-15 72 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