我使用文本框作为输入用户名和密码的输入。然后将输入的数据存放在字符串型变量中。然而当在用户登陆窗体中却出现用户名和密码错误。(我用英文的用户名就可以)这是为什么??各位仁兄慈姐亲弟好妹帮帮我呀!!在线等候!!严正代码如下:
Public Function PassWordFun(Password As String, Username As String, User_Record() As User_Info) As Boolean
  '
  '参数说明,第一个参数是用户输入的密码,第二个参数是用户输入的用户名称,第三个参数是一记录型的数组,存放
  '着以登记的用户的信息。在网络功能完善后,该记录存放的是经过解密的用户信息,记录的结构是不变的。用户一登
  '陆验证通过后就将该用户输入的用户名和密码保存起来,作为进入应用程式主界面使用重新登陆时的验证用户名和密码。
  '
  Dim Tempname As Boolean
  Dim Temppass As Boolean
  Dim i As Integer
  Dim User_Rec_Num As Integer
  
  User_Rec_Num = 200
  For i = 1 To User_Rec_Num
     If Username <> "" Or Password <> "" Then
        Tempname = validate.PasswordCmp(User_Record(i).Name, Username)
        If Tempname = True Then
           Temppass = validate.PasswordCmp(User_Record(i).Name, Password)
           If Temppass = True Then
             '密码和用户名正确,函数返回真值。
             PassWordFun = True
             UR_Number = i
             Exit Function
           End If
        End If
     End If
  Next
  PassWordFun = False
  
  '该函数用来比较文本框输入的用户名和密码是否正确,如果正确那么
  '函数返回true,否则返回flase
  '如果还有数据没有比较完成的,那么继续往下比较。
End Function
Public Function PasswordCmp(Source As String, Intent As String) As Boolean
'参数说明,比较intent字符串和source字符串是否完全相等。source是
'被比较的字符串(模式),而intent是待比较的字符串(匹配串)。
     Dim temp As Integer
     temp = Len(Intent)
     If temp = Len(Source) Then
        temp = InStr(Source, Intent)
        If temp = 1 Then
          PasswordCmp = True
        Else
           PasswordCmp = False
        End If
     Else
        PasswordCmp = False
     End If
     '该函数是用来比较source字符串和intent字符串是否相等,如果
     '相等,那么函数返回true,否则返回false。
     '该函数在浏览窗体的重新登陆功能被调用,在登陆模块的comdone的单击
     '事件中调用了该模块。在注册模块的密码与密码确认的比较调用了。
     '
End Function

解决方案 »

  1.   

    为什么要用InStr来做字符串比较呢?
    这样岂不是两个字符串不全等也符合要求?
      

  2.   

    to 阿甘(可怜的共享) :还有一个条件呀,那就是两个字符串的长度必须是一样的呀!!
    to flowerCSDN(萧雪) :如何绑定!!能否告之!!
      

  3.   

    在vb中能否访问一个string类型的字符串中的某个字符。
    能不能将该类型的字符串转化为整型的或者byte类型的数据存储!
      

  4.   

    为什么要自己编写对比函数呢?
    StrComp()函数应该可以满足要求的!