我用ACCESS做数据库,用ADO访问,
如果数据库不访密码,在ADO中使用空白密码,用户名为ADMIN,就可以正常连接到数据库;
如果将ACCESS数据库设了密码以后,用户名还是为ADMIN,并将密码贮存在ADO控件中,
但是ADO控件连接不上数据库,提示说:"因为初始提供者遭遇失败,测试连线失败,密码无效";
但是我的密码是对的呀,
这是什么原因呢

解决方案 »

  1.   

    动态添加ADOC1.ConnectionString:='';不能可视化的操作连接(有密码时);
    你可以拷贝下来到你的代码中
      

  2.   

    procedure SetConnection(MyAdoconnct:TADOConnection);
    var
      ConnStr,DBPath:String;
    Begin
      try
        DBPath:=ExtractFilePath(Application.ExeName)+'db1.mdb;';
        ConnStr:='Provider=Microsoft.Jet.OLEDB.4.0;'
          + 'User ID=Admin;Password=;Data Source='
          + DBPath
          + 'Persist Security Info=False;'
          + '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:Compact Without Replica Repair=True;'
          + 'Jet OLEDB:SFP=False';
        with MyAdoconnct do   //设置ADO连接属性
          begin
            Close;
            ConnectionString:=ConnStr;
            LoginPrompt:=False;
            Open;
          end;
      except
        on E:Exception do
        begin
          ShowMessage('无法打开数据库,请确定程序安装正确!'+e.Message);
          application.Terminate;
        end;
      end;
    end;
      

  3.   

    function ADOConnectAccess(const Adocon: TADOConnection; const DbName, Password: string): Boolean;
    {* 用Ado连接Access数据库函数}
    begin
      with Adocon do
      begin
        Close;
        LoginPrompt := False; //若数据库不存在时,进行判断
        ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
          'Data Source=' + DbName + ';' +
          'Mode=ReadWrite;' +
          'Persist Security Info=False;' +
          'Jet OLEDB:Database Password=' + Password + ';' +
          'Jet OLEDB:Compact Without Replica Repair=True';
        try
          KeepConnection := True;
          Screen.Cursor := crHourGlass;
          Connected := True;
          Open;
          Screen.Cursor := crDefault;
          ADOConnectAccess := True;
        except
          ADOConnectAccess := False;
        end;
      end;
    end;
      

  4.   

    //连接有数据密码的access数据库
     AdoAccess.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+ desfile +';Jet OLEDB:Database Password=wuwei';
      

  5.   

    这样就行
    AdoCN.ConnectionString='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\aaa.mdb;'
                 +'Jet OLEDB:Database Password=AAA;';    //AAA改为你自己的密码就行了
      

  6.   

    数据库链接属性里面的提供者选择Microsoft Jet 4.0 OLE DB Provider
    选择空白密码,然后再点开所有,选中Jet OLEDB:Database Password将值修改为你的密码就可以了。
      

  7.   

    strCon:='Provider=Microsoft.Jet.OLEDB.4.0;'+
          'Persist Security Info=False;'+
          'Data Source='XXXXX.mdb;'+
          'Jet OLEDB:Database Password=********';
        adoLocate.ConnectionString:=strCon;
        try
          adoLocate.Connected:=true;
       ......