Even an error with this code I copied

B

Bob H

I found a password login system for Access and copied it to aon click
event on a form in Access 2007, but there is an error in the coding.

I have created a tblEmployees with the following fields:
IngEmpID
strEmpName
strEmpPassword
Then I put a unbound combo box on a form with the username and password
fields. The combo box gets a list from strEmpName in the tblEmployees

I then copied the code given into the on click event of the cmd button:
BUT there is a Compile error 'variable not defined' IngMyEmpID, as
shown below

'Check to see if data is entered into the UserName combo box

If IsNull(Me.cboEmployee) Or Me.cboEmployee = "" Then
MsgBox "You must enter a User Name.", vbOKOnly, "Required Data"
Me.cboEmployee.SetFocus
Exit Sub
End If

'Check to see if data is entered into the password box

If IsNull(Me.txtPassword) Or Me.txtPassword = "" Then
MsgBox "You must enter a Password.", vbOKOnly, "Required Data"
Me.txtPassword.SetFocus
Exit Sub
End If

'Check value of password in tblEmployees to see if this
'matches value chosen in combo box

If Me.txtPassword.Value = DLookup("strEmpPassword", "tblEmployees", _
"[lngEmpID]=" & Me.cboEmployee.Value) Then

lngMyEmpID = Me.cboEmployee.Value <
BUT here there is a Compile error 'variable not defined' IngMyEmpID

'Close logon form and open splash screen

DoCmd.Close acForm, "frmLogon", acSaveNo
DoCmd.OpenForm "frmSplash_Screen"

Else
MsgBox "Password Invalid. Please Try Again", vbOKOnly, _
"Invalid Entry!"
Me.txtPassword.SetFocus
End If

'If User Enters incorrect password 3 times database will shutdown

intLogonAttempts = intLogonAttempts + 1
If intLogonAttempts > 3 Then
MsgBox "You do not have access to this database.Please contact
admin.", _
vbCritical, "Restricted Access!"
Application.Quit
End If

Thanks
 
D

Douglas J. Steele

Have you declared lngMyEmpID in your code?

I.e. do you have the following statement anywhere?

Dim lngMyEmpID As Long
 
B

Bob H

Have you declared lngMyEmpID in your code?

I.e. do you have the following statement anywhere?

Dim lngMyEmpID As Long
I didn't actually, thanks.

But now I get another Runtime error '2471':
The expression you entered as a query paramter produced this error:
IngMyEmpID

And when I debug, this is highlighted:

If Me.txtPassword.Value = DLookup("strEmpPassword", "tblEmployees", _
"lngMyEmpID=" & Me.cboEmployee.Value) Then

Thanks
 
B

Bob H

Apologies, I missed out the square brackets, but the error is still the
same.
I didn't actually, thanks.

But now I get another Runtime error '2471':
The expression you entered as a query paramter produced this error:
IngMyEmpID

And when I debug, this is highlighted:

If Me.txtPassword.Value = DLookup("strEmpPassword", "tblEmployees", _
"[lngMyEmpID=]" & Me.cboEmployee.Value) Then

Thanks
 
B

Bob H

Apologies, I missed out the square brackets, but the error is still the
same.
I didn't actually, thanks.

But now I get another Runtime error '2471':
The expression you entered as a query paramter produced this error:
IngMyEmpID

And when I debug, this is highlighted:

If Me.txtPassword.Value = DLookup("strEmpPassword", "tblEmployees", _
"[lngMyEmpID=]" & Me.cboEmployee.Value) Then

Thanks

I have just found that I need to create a module and put this line in it

Public lngMyEmpID As Long

So when that is done how does it link to the form or button.

Thanks
 
D

Douglas J. Steele

If by creating a module and adding that line you're talking about putting
the declaration into a second module (i.e. not the module in which the rest
of your code is running), I'd suggest you solved the symptom but not the
problem.

A large part of the problem trying to help you is that you're only giving
little snippets of code without any context. How are you currently running
the code? Your declaration should likely be in that procedure.

--
Doug Steele, Microsoft Access MVP
http://www.AccessMVP.com/DJSteele
Co-author: Access 2010 Solutions, published by Wiley
(no e-mails, please!)

Bob H said:
On 06/06/2010 14:48, Douglas J. Steele wrote:
Have you declared lngMyEmpID in your code?

I.e. do you have the following statement anywhere?

Dim lngMyEmpID As Long

Apologies, I missed out the square brackets, but the error is still the
same.
I didn't actually, thanks.

But now I get another Runtime error '2471':
The expression you entered as a query paramter produced this error:
IngMyEmpID

And when I debug, this is highlighted:

If Me.txtPassword.Value = DLookup("strEmpPassword", "tblEmployees", _
"[lngMyEmpID=]" & Me.cboEmployee.Value) Then

Thanks

I have just found that I need to create a module and put this line in it

Public lngMyEmpID As Long

So when that is done how does it link to the form or button.

Thanks
 
B

Bob H

I found the coding on a website which I can't find now, and the web page
had pictures of the table's and the form interspersed between the code.
Then at the very bottom of the page, below a picture, there was just the
line saying put this into a module. 'This' was 1 line of code:
Public lngMyEmpID As Long, with no other information given.

Thanks
 
B

Bob H

Update:
I finally managed to get the said password program working as it should
without errors.

On the original coding on the site I got it from there were 2 errors.
The first error omitted square brackets around a field name, which I
corrected, and the module it said to create was not quite what I have
ended up with.
I did not create a module as such, but added the said line under the
Option Compare section:

Option Compare Database
Public lngMyEmpID As Long

And now the programs runs exactly how it should in Access 2007.


On 06/06/2010 14:48, Douglas J. Steele wrote:
Have you declared lngMyEmpID in your code?

I.e. do you have the following statement anywhere?

Dim lngMyEmpID As Long

Apologies, I missed out the square brackets, but the error is still the
same.
I didn't actually, thanks.

But now I get another Runtime error '2471':
The expression you entered as a query paramter produced this error:
IngMyEmpID

And when I debug, this is highlighted:

If Me.txtPassword.Value = DLookup("strEmpPassword", "tblEmployees", _
"[lngMyEmpID=]" & Me.cboEmployee.Value) Then

Thanks

I have just found that I need to create a module and put this line in it

Public lngMyEmpID As Long

So when that is done how does it link to the form or button.

Thanks
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top