Я пытаюсь выполнить проверку имени пользователя и пароля, я не могу понять проблему? Как я могу это исправить? - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь проверить имя пользователя и пароль, когда я вызываю функции GetUsername () и GetPassword () через отладчик, он печатает подходящие значения, но когда я набираю те же значения в программе, он показываетневерное имя пользователя или пароль.

Private Sub cmdLogin_Click()
  Dim ReturnVal As Integer
  Dim resp As Integer
  Dim username As String
  Dim password As String
  Debug.Print GetUsername()
  Debug.Print GetPassword()
  username = GetUsername()
  password = GetPassword()
  If txtUsername.Text = username And txtPassword.Text = password Then
    ReturnVal = sndPlaySound("D:\Docs Dump\351877__theatomicbrain__start- 
    computer.wav", SND_ASYNC)
    frmMenu.Show
    FormLogin.Hide
  Else
    MsgBox "Incorrect Password or Username", vbOKOnly + vbCritical, "Error"
    txtUsername.Text = ""
    txtPassword.Text = ""
  End If
End Sub

GetUsername () и GetPassword ():

Public Function GetUsername() As String
  Dim username As String
  Set db = New Connection
  Set adoRsLogin_Username = New Recordset
  db.Open "PROVIDER = Microsoft.Jet.OLEDB.4.0; Data Source = D:\Docs Dump\School 
  stuff\Hytekcrete_Project\HytekcreteDB\DB_old.mdb;"
  adoRsLogin_Username.Open " select User_ID from Login ", db, adOpenStatic, 
  adLockOptimistic
  username = adoRsLogin_Username.GetString
  adoRsLogin_Username.Close
  GetUsername = username
End Function
Public Function GetPassword() As String
  Dim password As String
  Set db = New Connection
  Set adoRsLogin_Password = New Recordset
  db.Open "PROVIDER = Microsoft.Jet.OLEDB.4.0; Data Source = D:\Docs Dump\School 
  stuff\Hytekcrete_Project\HytekcreteDB\DB_old.mdb;"
  adoRsLogin_Password.Open " select Password from Login ", db, adOpenStatic, 
  adLockOptimistic
  password = adoRsLogin_Password.GetString
  adoRsLogin_Password.Close
  GetPassword = password
End Function

1 Ответ

0 голосов
/ 04 октября 2019

Попробуйте это

Private Sub cmdLogin_Click()
  Dim ReturnVal As Integer
  Dim resp As Integer
  Dim username As String
  Dim password As String
  Dim fUserNameOK As Boolean, fPassOK As Boolean

  username = GetUsername()
  password = GetPassword()
  Debug.Print username
  Debug.Print password

  fUserNameOK = (StrComp(username, txtUsername.Text, vbTextCompare) = 0)
  fPassOK = (StrComp(username, txtPassword.Text, vbBinaryCompare) = 0)
  If fUserNameOK And fPassOK Then
    ' play sound file
  Else
    ' login error
  End If
End Sub

Установите точку останова в строке If. Наведите указатель мыши на fUserNameOK и fPassOK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...