Hi,
I have an MS Access database which has password. Now I can open the database using the password from MS Access, but when I try to test connection from Visual Studio Connection String Settings Design Time Windows Form, I get message that "Not a valid password". Still, I tried to connect to that password protected MS Access database from C# using the connection string with password, and then when I run the application, I get Database Connection error message. Is there anything I am missing ? Would you please help me.

Thanks.

Recommended Answers

All 7 Replies

I have a few questions?

  1. What version of Access?
  2. Are you using OLEDB or ODBC?
  3. Can you post your connection string?

The connection string should look like this for Access 2007 with a password.

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\mydb.accdb;Jet OLEDB:Database Password=password;

Standard security with ODBC should look like this for other versions of Access.

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=password;

Standard security with OLEDB should look like this.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydb.mdb;User Id=admin;Password=password;

And with just a database password, the OLEDB connection string should look like this:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydb.mdb;Jet OLEDB:Database Password=password;

Hi Hamrick,

Thanks a lot for your help. Finally I found the problem, I changed my password and now it was working. So, I am assuming that, Ms Access cant take longer than a certain length password or some special character or maybe something else. But I am happy, my new password is working now. :)

Regards
Emran

That's funky. I looked around and found application limits for access 97 and 2000. I guess they're the same or better for newer versions, and if they're better it's probably a good idea to assume they're not for compatibility.

Access 97:

  • Max mdb file size: 1GB
  • Max objects in database: 32768
  • Max modules in database: 1024
  • Max object name length: 64
  • Max password length: 14
  • Max user/group name length: 20
  • Max users connected to database: 255
  • Max record length (without Memos and BLOBs): 2048
  • Max fields in table: 255
  • Max nested transactions: 7

MS Access 2000:

  • Max mdb file size: 2GB
  • Max table size: 1GB
  • Max objects in database: 32768
  • Max modules in database: 1000
  • Max object name length: 64
  • Max password length: 14
  • Max user/group name length: 20
  • Max users connected to database: 255
  • Max record length (without Memos and BLOBs): 2048
  • Max fields in table: 255

I guess your password was more than 14 characters? :-/ If not it probably had some special characters that access doesn't like. :)

Hi,
Thanks again,.

I am still confused about a matter. If my password was longer than 14 characters, then anytime ACCESS should not have accepted the password, right ? But I could easily open the MS Access using that old password directly from the MS ACCESS application itself. But when I tried to connect to the same database using the same password thru the ConnectionString from C# Windows Application, I used to get "Not a valid password.". Is it supposed to be different for one in MS Access application (itself) and another from external application connection !!

Anyway, I appreciate your helps.

Regards
Emran

I used to get "Not a valid password."

You aren't using it anymore, right? What was the password? I'm thinking it might have a special character that's treated differently in C# strings and translates into something not valid. That's just a guess though. :)

Hi
Your guidance is really helpful to me Thanks.

Regards
Viral

I have a few questions?

  1. What version of Access?
  2. Are you using OLEDB or ODBC?
  3. Can you post your connection string?

The connection string should look like this for Access 2007 with a password.

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\mydb.accdb;Jet OLEDB:Database Password=password;

Standard security with ODBC should look like this for other versions of Access.

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=password;

Standard security with OLEDB should look like this.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydb.mdb;User Id=admin;Password=password;

And with just a database password, the OLEDB connection string should look like this:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydb.mdb;Jet OLEDB:Database Password=password;

Could you tell me please how it worked with you?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.