954,546 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Connecting password protected MS Access database from C#

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.

emran834
Newbie Poster
3 posts since Jul 2007
Reputation Points: 10
Solved Threads: 0
 

I have a few questions?
What version of Access?
Are you using OLEDB or ODBC?
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;
Hamrick
Posting Whiz
325 posts since Jun 2007
Reputation Points: 180
Solved Threads: 34
 

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

emran834
Newbie Poster
3 posts since Jul 2007
Reputation Points: 10
Solved Threads: 0
 

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. :)

Hamrick
Posting Whiz
325 posts since Jun 2007
Reputation Points: 180
Solved Threads: 34
 

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

emran834
Newbie Poster
3 posts since Jul 2007
Reputation Points: 10
Solved Threads: 0
 
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. :)

Hamrick
Posting Whiz
325 posts since Jun 2007
Reputation Points: 180
Solved Threads: 34
 

Hi
Your guidance is really helpful to me Thanks.

Regards
Viral

I have a few questions?
  • What version of Access?
  • Are you using OLEDB or ODBC?
  • 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;
vikibhatt
Newbie Poster
1 post since Feb 2010
Reputation Points: 10
Solved Threads: 0
 

Could you tell me please how it worked with you?

propatrio
Newbie Poster
1 post since Aug 2010
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You