Quote:
Originally Posted by JSHARP92
Ok, Iv'e got my macro code for a login form and will post it shortly. The whole idea for the login for is to be able to type in a username and password and will dispaly a confirmation message which lets the user know they have successfully logged in. The user will then be automatically directed to the main menu part of my system. I have successfully got the login for to display an error message when the user doesnt type in a username or password but I cannot get the system to log the user in if they enter a username and password. Could someone please look at my code below and give me an idea were ive went wrong? thank you :)
--------------------------------------------------------------------------
|
Hi there. Well, you were very nearly there with this, so well done. I have taken the liberty to change your loop for you, though feel free to change it back again if this doesn't meet what you have been tasked with. I thought it might be a hassle to capture the number of users and loop through this way - I have changed it so it doesn't matter how many users you have, it will check the whole list.
Take a look at this code and see if it suits your purpose. There are a few other things I'd fix in there to make it more efficient/tidy, however it works and meets the requirements of your assignment.
Let me know how you get on.
Code:
Sub LogIn()
'stops the screen from flickering
Application.ScreenUpdating = False
'declares variables
Dim uname As String
Dim pword As String
Dim PasswordFound As Boolean
'moves worksheet and sets values to variables
Sheets("LogInForm").Select
uname = Range("Username")
pword = Range("Password")
'if both values are not empty then check to see if they are a valid combination
If uname < "" And pword < "" Then
' Move to the sheet of username/password combos
Sheets("UserDetails").Select
Range("A1").Activate
PasswordFound = False
' Keep reading until the bottom of the list of usernames
Do Until ActiveCell = ""
' do the username and password match?
If ActiveCell = uname And ActiveCell.Offset(0, 1) = pword Then PasswordFound = True
' move down to the next row
ActiveCell.Offset(1, 0).Activate
Loop
'if correct uname and pword are correct values
If PasswordFound Then
'move worksheets and reset values , then moves sheets
Sheets("LogInForm").Select
Range("Username") = ""
Range("Password") = ""
Sheets("MainMenu").Select
MsgBox "Your login was successful", vbOKOnly, "Login Success"
'if values dont match
Else
MsgBox "Please try again, You must enter a valid username and password", vbOKOnly, "Login Unsuccessful"
'ends if statement
End If
'if the boolean is true
If ErrorX = True Then
'moves sheets, clears form, displays message box
Sheets("LoginForm").Select
Range("Username") = ""
Range("Password") = ""
'ends if statement
End If
' Both password and username not entered
Else
'displays error
MsgBox "You must enter both a username and password", vbOKOnly, "Username and Password Required"
'ends if statement
End If
End Sub