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.   

    已经试过N多方法。都没有解决。
    1,重装MDAC。
    2,重装jet40sp8_9xnt.exe。
    3,REGSVR32 "C:\Program Files\Common Files\System\ole db\MSDASQL.DLL" 
    4, 开始--->运行, 输入 regsvr32 msjetoledb40.dll, 回车。这些方法都试过了。还是不能解决问题。
      

  2.   

    'Provider=MSDASQL.1;Extended Properties="DBQ=' + ConStr +';Driver={Microsoft Access Driver (*.mdb)};PWD=DZDSoft;UID=admin;"';
      

  3.   

    请访问我的博客文章,通常能解决你的问题,至少我自己解决了很多。http://blog.csdn.net/byteh/archive/2009/04/21/4098538.aspx
      

  4.   

     1.解决 “Microsoft.Jet.Oledb.4.0 找不到提供者 或 未正确安装” 的方法 
    此方法的前提是, 你书写的 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
      

  5.   

    我喜欢不在代码里直接写,就在属性选项里设置connectionstring,这样好象简单很多,——不知道这是不是菜鸟做法 :(
      

  6.   

    楼主试试把数据库文件名以8.3格式命名,比如abc.mdb也贴个
    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;