procedure TForm1.Button1Click(Sender: TObject);
var
ConStr: string;
begin
ConStr := ExtractFilePath(Application.ExeName) + 'openenglish.mdb'; ADOCon_Eng.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + ConStr +
';' +'Jet OLEDB:Database Password=DZDSoft';
(*
ADOCon_Eng.ConnectionString := 'Driver={Microsoft Access Driver (*.mdb)};DBQ=' + ConStr +
';Uid=admin;Pwd=DZDSoft';
*)
try
//ADOCon_Eng.Close;
ADOCon_Eng.Connected := true;
showMessage('数据库连接成功!');
except on e: exception do
begin
ShowMessage(e.Message);
end;
end;
end;
1,重装MDAC。
2,重装jet40sp8_9xnt.exe。
3,REGSVR32 "C:\Program Files\Common Files\System\ole db\MSDASQL.DLL"
4, 开始--->运行, 输入 regsvr32 msjetoledb40.dll, 回车。这些方法都试过了。还是不能解决问题。
此方法的前提是, 你书写的 ConnectionString 是正确的, 形如:
Provider=microsoft.Jet.Oledb.4.0;Data Source=;Jet Oledb:Database Password=xxx;
如果此时,提示 “找不到提供者” 或 “未正确安装”, 原因是JET 4.0的 DLL在注册表中的信息, 由于某种原因被损坏或丢失,解决方法如下: 开始--->运行, 输入 regsvr32 msjetoledb40.dll, 回车。建议重启一下,问题即可解决。2.重新安装MDAC的驱动3.如果还不行,就得用绝招了。这招我治好了3台客户的机器了,都是突然间Access数据库无法连接导致公司的软件无法正常使用,
报错的提示为‘找不到指定的模块’。解决方法如下:
WINDOWS的INF目录下,右键点击MDAC.inf,选“安装”,放入XP安装盘,进入I386目录,安装就可以了。
第一次发现问题一直持续了两个月才解决,找到方法后觉得简单没有记录,结果今天又发现了问题,尝试了很多最后还是通过查看与客户的聊天记录才找到。所以必须记录在这里了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/byteh/archive/2009/04/21/4098538.aspx
procedure TForm_main.DBConnect;
begin
try
with DM.ADO_KQ do
begin
Connected:=false;
ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Jet OLEDB:Database Password=null'+';Data Source='+ExtractFilePath(Application.ExeName)+'Data\KQDB.mdb';
Connected:=true;
end;
except
Application.MessageBox('试图与系统数据库建立连接时出错!'+#13+'请检查系统数据库文件是否存在,再重试!','Information',MB_ICONINFORMATION+mb_ok);
Application.Terminate;
end;
end;