Private Sub command1_Click()
  Dim RSPwd As New Recordset
  Dim Logcount As Integer
  Set RSPwd = ModAdoDB.QueryData("select fpwd from tb_user where  fname = '" & Trim(CStr(Combo1.Text)) & "'")
  Logcount = 1
    'MsgBox CStr(RSPwd.Fields(0)), vbOKOnly, "测试以上查询结果"
     MsgBox CStr(Text1.Text), vbOKOnly, "Text输入结果"
     
    Do While Logcount < 5
    If CStr(RSPwd.Fields(0)) = Trim(CStr(Text1.Text)) Then
         
      MsgBox "口令成功", vbOKOnly, "口令"
      
      
      MDIFrmMain.Show
      
      Exit Do
      Unload Me
    Else
      MsgBox "口令不成功", vbOKOnly, "口令"
      FrmLog.Show
       Text1.Text = ""
      
      Logcount = Logcount + 1
      
    End If
  
  Loop
  
    End Sub

解决方案 »

  1.   

    把CStr(RSPwd.Fields(0))和Trim(CStr(Text1.Text)) 都打印出来看下不就知道了?
      

  2.   

    你这样试试: If Trim(RSPwd.Fields(0)) = Trim(Text1.Text) Then
    else
    end if还有Exit Do 后面不要放任何语句,因为它不会被执行。
      

  3.   

    Do While Logcount < 5
        If CStr(RSPwd.Fields(0)) = Trim(CStr(Text1.Text)) Then
             
          MsgBox "口令成功", vbOKOnly, "口令"
          
          
          MDIFrmMain.Show
          
          Exit Do
          Unload Me
        Else
          MsgBox "口令不成功", vbOKOnly, "口令"
          FrmLog.Show
           Text1.Text = ""
          
          Logcount = Logcount + 1
          
        End If
      
      Loop
    不说别的你这段代码就有问题,假如第一次错了的话,用户根本没有机会输入新密码,立刻下面的循环给干掉了。