ok, firstly you'll need to create a table with users, holding their ID, username, password, and a tick box for enabled (optional)
Now, create a form (login form) which constsits of a drop down box, and text box, and a button. With the drop down box, make it's row source the ID and username fields of the users table. ok, now the main code comes in.
With the button, what will need to happen behind it is this:
First, do a DLookup on the username selected from the list to find their password.
Check to see if the password entered matches the password found for that user.
If it doesn't, give an error message stating so.
If it does, then open the specified form.
Ok this is just for the login script
Create a global variable which can be called anything you like, but something you'll remember, such as "UserLoggedIn"
Now, on the button of the login form, add the code that say when the username and password are correct, set the new global variable to be equal to the user that has just logged in (You've already got this information with the DLookup in the login script)
Ok, now, for every table that will be storing data (or at least, the tables which have forms based on them) create a new field, which is for the user who added that data.
Ok, now, on each of these forms, add the new field and set it to invisible so the user can't see it. When a user creates a new record, you want the code to set the value of this field the the value of the "UserLoggedIn" variable (hopefully this should be an ID number)
What should now happen is for every person who creates a new record, this field should put that users ID in the field that they can't see, so it is recording who created the record.
The next step, is to have the OnLoad even of the form, filter the data on the ID number stored in the "UserLoggedIn" variable. You can also have a failsafe, that checks to see if the userloggedin is the Admin, and if so, don't filter, but if not, then filter everything based on the ID number of who created it, filtering that field.
Hopefully this makes sense?? It is quite a complex way but can be very customizable if done properly.
Let me know if you need any more help with it.
Adrian