How to Troubleshoot Microsoft Access VBA Login and DLookup Errors
Question details
The user is encountering an error in a Microsoft Access VBA login form while attempting to retrieve the user type using the DLookup function.

- Product
- Microsoft Access
- Device & OS
- not provided
- Scenario
- Executing a custom VBA login script that validates credentials, stores IDs in TempVars, and fetches user types for main menu access control.
- Observed behavior
- The VBA code correctly validates the username and password but throws a runtime error during the DLookup retrieval of the user type.
Before modifying your VBA script, open the Access VBA Editor (Alt + F11) and enable the 'Locals' window from the View menu so you can actively monitor variable states and DLookup outputs.
Step Through the VBA Code to Identify the Exact Error
Use breakpoints to pause execution and step through your code line by line, allowing you to isolate the failing DLookup function and inspect variable values.
Runtime errors in Access VBA login forms are often caused by incorrectly formatted criteria strings, mismatched data types, or misspelled table and field names.
By stepping through the code, you can pinpoint the exact line causing the crash and read the verbatim error message.
Open the VBA Editor. Locate the beginning of your login validation procedure and click in the gray margin to the left of the code to insert a red breakpoint.
Return to your Access database, open the login form in Form View, enter test credentials, and click the login button to trigger the code.
When the code pauses at the breakpoint, press the F8 key on your keyboard to execute the code one line at a time.
When you reach the DLookup line, hover over your criteria variables (like TempVars!UserID) to ensure they hold the correct values. Confirm that your table and field names exactly match the database schema.

Handle Null Values and Data Types Correctly
Ensure that your VBA variables can accept the data type returned by DLookup and prevent 'Invalid Use of Null' crashes.
Looking for a Lightweight, Cost-Effective Office Suite?
While WPS Office does not include a direct equivalent to Microsoft Access, it serves as a powerful, free alternative to Microsoft Word, Excel, and PowerPoint for your everyday productivity needs. Enjoy seamless format compatibility and a familiar interface without the expensive subscription fees.
- 1. Download WPS Office: Visit the official WPS website and download the free installation package for your operating system.
- 2. Install the Suite: Run the installer and follow the on-screen prompts to set up WPS Office on your computer.
- 3. Open Your Office Files: Launch WPS Office and directly open your existing .docx, .xlsx, or .pptx files seamlessly.

Frequently Asked Questions
Why does DLookup return 'Invalid Use of Null' in Access VBA?
This error occurs when DLookup cannot find a record matching your criteria, resulting in a Null value, which is then assigned to a variable type (like String or Long) that cannot accept Nulls. Use the Nz() function to convert the Null into a default value, or declare the variable as a Variant.
How do I correctly use TempVars inside a DLookup criteria string?
When referencing TempVars in DLookup, you must concatenate it outside the quotation marks. For numeric fields, use: "[UserID] = " & TempVars!UserID. For text fields, add single quotes: "[UserName] = '" & TempVars!UserName & "'".
Why shouldn't I store plain text passwords in an Access database?
Storing plain text passwords is a major security vulnerability. If anyone gains access to the tables, they can view all user credentials. Instead, you should store hashed versions of passwords and compare the hash of the user's input during the VBA login process.
How can I fix a 'Data Type Mismatch' error in a VBA DLookup?
A data type mismatch occurs when the data type of the field you are searching doesn't match the criteria format. Ensure you are not putting quotes around numerical values in the criteria string, and verify the field types in the table's Design View.




