Access的mdb文件用ADO连接(50分)

  • 主题发起人 主题发起人 saving88
  • 开始时间 开始时间
S

saving88

Unregistered / Unconfirmed
GUEST, unregistred user!
Access的mdb文件用ADO连接
这个mdb文件在Access2000中设置了密码,Ado连接失败,
(提示所有者...被独占....)
在Access2000中去掉密码,就连接成功。
请问这是怎么回事,如何能连上有密码的mdb文件?
(在ADOConnect...中我当然知道输入密码!)
 

在‘所有’ 页中的PASSWORD输入密码。
 
这个问题也难过我好长时间,真不知道ADO怎么会这样。
 
估计Access的那个输入密码的地方是属于系统的密码,有系统数据库时才从那里输入的。
而mdb本身的密码则需要从所有里面选择database password输入
 
我也遇到过类似的问题,解决的方法是手工配置AdoConnection.ConnectionString属性,
例如:
//自定义的连接过程:
procedure Tmainform.BuildConnection(databasename:string);
begin
datamodule1.ADOConnection1.Connected:=false;
datamodule1.ADOConnection1.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Password="";'+
'User ID=Admin;'+//用户名
'Data Source='+databasename+';'+
'Mode=Share Deny None;'+
'Extended Properties="";'+
'Locale Identifier=2052;'+
'Jet OLEDB:System database="";'+
'Jet OLEDB:Registry Path="";'+
'Jet OLEDB:Database Password="wan";'+ //提供数据库的密码
'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';
try
datamodule1.ADOConnection1.Connected:=true;
except
messagebox(0,'读取文件错误!','错误',mb_iconerror);
end;
n43.Checked:=false;
caption:='信息资源系统';
caption:=caption+'--'+databasename;
end;
 
用下面的连接串
strCon:='provider=Microsoft.Jet.OLEDB.4.0;user ID=Admin;Data Source='
+{mdb路径}+'Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";'
+'Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=您的密码;'
+'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';
一定可行
 
送sanming的方法,没问题的,可以结束了
 
多人接受答案了。
 
后退
顶部