如何用OpenDialog打开带密码的Access数据库文件? ( 积分: 30 )

  • 主题发起人 主题发起人 qiuqiu133
  • 开始时间 开始时间
Q

qiuqiu133

Unregistered / Unconfirmed
GUEST, unregistred user!
有一Access数据库文件,密码为123456,用OpenDialog1.Execute去打开它,提示“密码无效”,请问OpenDialog要加什么参数才能不提示这个错误?
 
OpenDialog只是定位文件路径和文件名,并不打开文件,你要把密码加在ADO控件的连接数据库语句上。
const
CONNECTSTR = 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Persist Security Info=False;' +
'Data Source=%s;' +
'Mode=ReadWrite;' +
'Jet OLEDB:Database Password=%s';
with FADOQuery do
begin
Close;
ConnectionString := Format(CONNECTSTR, [FDataFile, FPassWord]);
......
end;
 
在打开的按纽加入以下代码
=====================================
var
j:string;
if openDialog1.Execute then
begin
j:='provider=Microsoft.Jet.OLEDB.4.0;user ID=Admin;Data Source='
+openDialog1.filename+';'
+'Mode=Share Deny None;Extended Properties="";'
+'Jet OLEDB:System database="";'
+'Jet OLEDB:Registry Path="";'
+'Jet OLEDB:Database Password="123";' //设定密码为123
+'Jet OLEDB:Engine Type=5;'
+'Jet OLEDB:Database Locking Mode=1;'
+'Jet OLEDB:Global Partial Bulk Ops=2;'
+'Jet OLEDB:Global Bulk Transactions=1;'
+'Jet OLEDB:New Database Password="";'
+'Jet OLEDB:Create System Database=False;'
+'Jet OLEDB:Encrypt Database=False;'
+'Jet OLEDB:Don'+''''+'t Copy Locale on Compact=False;'
+'Jet OLEDB:Compact Without Replica Repair=False;'
+'Jet OLEDB:SFP=False';

ADOConnection1.LoginPrompt:=false;
ADOConnection1.ConnectionString:=j;
end;
 
多人接受答案了。
 
后退
顶部