用DELPHI7的ado连接设置了数据库密码的ACCESS数据库如果数据库没加密码的话用以下连接STRING没问题
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=手机库存.mdb;Persist Security Info=False”但加了密码后
连接STRING为:“Provider=Microsoft.Jet.OLEDB.4.0;Password=123;Data Source=库存.mdb;Persist Security Info=True”
一按测试的话就会报以下错误:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=手机库存.mdb;Persist Security Info=False
---------------------------
Microsoft 数据链接错误
---------------------------
测试连接失败,因为初始化提供程序时发生错误。无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。
---------------------------
确定   
---------------------------

解决方案 »

  1.   

    对有密码的ACCESS数据库如果用ADO只能动态设定,而且这里面的参数很复杂,其实并不是设的东西负责而是这个语句很繁琐!
    下面我把代码贴出,以供参考!
    const
    {TADOConnection 连接数据库的参数}
      ADOLinkString ='Provider=Microsoft.Jet.OLEDB.4.0;'
              + 'Password=%s;'     //用户工作组(*.mdw)密码
              + 'User ID=%s;'     //用户工作组(*.mdw)用户名Admin
              + 'Data Source=%s;'    //数据库文件(*.mdb)位置
              + 'Persist Security Info=True;'
              + 'Mode=ReadWrite;'               // 数据库打开方式
              + 'Extended Properties=""'       //默认值为空
              + 'Jet OLEDB:System Database=""' //用户工作组文件
              + 'Jet OLEDB:Registry Path=""'   //注册路径
              + 'Jet OLEDB:Database Password=%s;' //数据库密码
              + 'Jet OLEDB:Engine Type=1;'
              + 'Jet OLEDB:Database Locking Mode=1;'
              + 'Jet OLEDB:Global Partial Bulk Ops=2;'
              + 'Jet OLEDB:Global Bulk Transactions=1;'
              + 'Jet OLEDB:New Database Password=%s;'    //?密码 
              + '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';
    var
        mainDBPath,
        mdwPassword,
        mdwUserID,
        mdbDataSource,
        mdbUserID,
        mdbPassword,
        mdbNewPassword:string;
    begin
      mainDBPath :=ExtractFilePath(ParamStr(0));
      mdwPassword :='';
      mdwUserID :='Admin';
      mdbDataSource :=mainDBPath+'data\hongyu.mdb';
      mdbUserID :='Admin';
      mdbPassword :='123456';
      mdbNewPassword :='';
      //---这样设置完后再连接到控件的属性上就可以了!---//
        with ADOQry_User do
        begin
        {以上是给变量赋值}
          Active :=False;
          ConnectionString :=Format(ADOLinkString, [mdwPassword,  mdwUserId,
                      mdbDataSource, mdbPassword, mdbNewPassword]);{初始连接参数}
          end;
    end;
      

  2.   

    ado连接项第四页中有password选项,找一下就能看到
      

  3.   

    我的是adoconnection1.connectionstring:='provider=microsoft.jet.oledb.4.0;'+'password="";user id=admin;
    data source='+extractfiledir(application.exename)+'\db\address.mdb;    ---------数据库存放地址
    persist security info=true;'+'jet oledb:database password='123456';      ----密码
    adoquery1.Prepared:=true;
    adoquery1.Open;
      

  4.   

    解决ADO连接带密码的ACCESS数据库问题
                     高红岩(ghyghost)  笔者近日在写ADO连接带密码的ACCESS数据库时,当connected:=true;时,总是出现密码不对的对话框,最终
    在研究了TADOConnection.ConnectionString的内容创建过程时得到灵感,现与大家分享。
      1,新建Project。
      2,在FORM中放入ADOConnection,ADOQuery,DataSource,Datagrid控件。
      3,双击ADOConnection控件,然后点击Build...按钮,在“提供者”页中选择“Microsoft Jet 4.0 OLE DB 
      Provider”,然后点击“下一步”按钮,在“连接”页中选择要连接的Access数据库的路径和数据库的文件
    名,这时如果点“测试连接”按钮时,出现“初始化提供者时发生错误,测试连接失败,密码无效”的错误提示。
      4,这时点“所有”页,然后双击“Jet OLEDB:Database Password”,出现对话框,添入密码后,选择“连
    接”页中的“测试连接”按钮,出现“测试连接成功”的对话框。把ADOConnection控件的LoginPromtp设为false.
      5,设置连接完成。
      

  5.   

    错误提示如下
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=手机库存.mdb;Persist Security Info=False
    ---------------------------
    Microsoft 数据链接错误
    ---------------------------
    测试连接失败,因为初始化提供程序时发生错误。无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。
    ---------------------------
    确定   
    ---------------------------
    不是提示密码错误
      

  6.   

    请问用不ado打开有密码的paradox数据库时,怎样设置?(我不知道密码)
      

  7.   

    访问设置了密码的Access,可以用如下链接串访问:
    sDataSource := ExtractFilePath(ParamStr(0)) + 'DataBase\PowerPrice.mdb';
    sConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source = ' + sDataSource + ';Persist Security Info=False;Jet OLEDB:Database Password=123';
      

  8.   

    Provider=Microsoft.Jet.OLEDB.4.0;Password="(这里不要输)";User ID=Admin;Data Source=.\aaa.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