Results 1 to 4 of 4
  1. #1
    Join Date
    Dec 2004
    Madison, WI

    Unanswered: Seeking tricky solution

    I have an Access database which I'm selling to a client. The client I'm working with is fairly knowledgeable with Access and will be making edits (designing queries/reports/field additions, etc.) so their also getting the mdb file. What I'm trying to figure out is a way to make it so that I can force (the mdb file) to enter a password after a certain date without a knowledeable person simply remarking out code to bypass the checking routine in the mdb and making a new mde file (the backend is SQL Server and the user will be running the program for several months before the password is asked).

    I currently have a function setup which runs on the opening of the main form which matches 2 password type fields in a registration table once a certain date has passed. I've already entered the password in the 2nd field. Once they enter the correct password in the first field, the routine will pass the next time they open the program. If they don't match, it asks the user again to enter the password which is then stored in field 1 of the registration table if it matches. Then the next time the mdb is run, it sees the 2 fields match and doesn't ask again for a password (asking for a password everytime is out of the question). This may not be the best solution so I'm open for any suggestions but it needs to be set up to run on a specific date and then until the correct password is entered (otherwise it exits the application) and not available to another mid-level programmer.

    My problem is that it's too easy to simply remove the code in the mdb which calls this (or any type of) registration function (I'd prefer not to do any registry entries.) Since this person is fairly knowledgeable, that could easily be done. I would like to send them just the mde file but that is not possible. So how can I somehow design a piece of hidden code available to only me (that another fairly knowledeable user would be using) in an mdb file which would execute on a certain date?
    Last edited by pkstormy; 09-23-05 at 22:28.
    Expert Database Programming
    MSAccess since 1.0, SQL Server since 6.5, Visual Basic (5.0, 6.0)

  2. #2
    Join Date
    Jun 2004
    IMHO, You could (should?) create forms and reports to deal with their possible queries, and send them a mde (featuring passwords and all). Just my opinion.
    The person who confesses ignorance shows it once; the person who conceals it shows it many times.

  3. #3
    Join Date
    Nov 2003
    I afraid there really isn't a whole lot you can do here. You have handed over the source code which makes up your application. This is something you really should never do.

    The only thing I can think of off hand is to create a DLL file that would be required for specific important functions within the database (something that would be difficult to simulate otherwise) and without these functions the database simply won’t run or won’t run properly. This way the user can disassociate the DLL so as to circumvent the "Registration Check". Within this DLL library, have the "Registration Check" routine fire every time a specific function is commonly used. Basically then, your "Registration Check" would be constantly monitored.

    Self Taught In ALL Environments.....And It Shows!

  4. #4
    Join Date
    Sep 2003
    About the only way that I can see you doing this is to have 2 DBs: 1 for your "protected" code/forms/reports/whatever and a 2nd DB where you allow the enduser to do their own custom stuff. But how to prevent them from bypassing your stuff all togther ... Hmmmm. How about some signature token from the 1st DB to the SQL Server db for authentification? Oh, and obviuosly trhe 1st db is a MDE ...
    Back to Access ... ADO is not the way to go for speed ...

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts