当连接时问到密码,可是输入正确的密码后还是提示:“初始化提供者中发生错误,测试连接失败,无法启动应用程序。工作组信息文件丢失,或是被其他程序以独占方式打开。”,请问为什么,如何解决?依照提示,我没有以独占的方式打开数据库。

解决方案 »

  1.   

    在ado控件的连接属性中最有一个tab有一个password属性,添上你的密码就可以了
      

  2.   

    如何用ADO连接accsee数据库: 
    首先放置一个ADOConnection控件ADOConnection1; 
    然后双击该控件,在弹出窗口中选择build..按钮; 
    在弹出的“数据连接属性”框中的“提供程序”页选择并双击:“Microsoft  Jet  4.0  OLE  DB  Provider”到连接页; 
    选择或输入数据库名称,测试一下就OK了; 
    如果有密码,就在“数据连接属性”对话框选择“所有”(*特别注意:不是在“连接”页上去掉“空白”钩填密码的*)页在属性值中输入你的密码。 
    LoginPrompt设为false,就不会弹出密码框了。 然后放置一个ADOQuery1,将Connection  设为ADOConnection1; 
    在SQL属性上点三个点的小按钮,输入:select  *  from  表名; 再放一个DataSource1: 
    Dataset属性设为ADOQuery1; 再放一个DBGrid1: 
    DataSource属性设为DataSource1; 选择ADOQuery1,将Active设为True; DBGrid1中是不是显示了数据. 更多事例见:http://www.kaer.cn/default.aspx 
      

  3.   

    //使用ADO控件集动态打开ACCESS数据库列程
    //本方法主要面向客户选择目标ACCESS数据库
    //取代弹出的ConnectionString的设置对话框
    //注:ADOTable和ADOQuery控件的连接字串不同
    //著名关心CSDN结贴率爱国人士-实用库Tip No 1 - 2003-9-25
    function FileName_DataBasePassWord(FileName:string; DataBasePassWord:string=''):string;
    begin
    FileName_DataBasePassWord:='Provider=Microsoft.Jet.OLEDB.4.0;'+
                               'User ID=Admin;Data Source='+
                               form1.OpenDialog1.FileName+  //数据库文件路径
                               ';Mode=Share Deny None;Extended Properties="";'+
                               'Jet OLEDB:System database="";'+
                               'Jet OLEDB:Registry Path="";'+
                               'Jet OLEDB:Database Password='+
                               DataBasePassWord+ //数据库密码
                               ';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';
    end;procedure TForm1.DynamicOpenAdoAccess_BtnClick(Sender: TObject);
    begin
         form1.OpenDialog1.Filter:='Text files (*.mdb)|*.MDB';
         form1.OpenDialog1.DefaultExt:='MDB';
         form1.OpenDialog1.InitialDir:=application.GetNamePath;
         form1.OpenDialog1.Title:='指定Access数据库Mdb文件的位置';
      if form1.OpenDialog1.Execute then
         begin
         form1.ADOConnection1.LoginPrompt:=false;
         //带密码数据库的使用
         //form1.ADOConnection1.ConnectionString:=FileName_DataBasePassWord(form1.OpenDialog1.FileName,'ghyghost');
         //不带密码数据的使用
         form1.ADOConnection1.ConnectionString:=FileName_DataBasePassWord(form1.OpenDialog1.FileName);
         form1.ADOConnection1.Open;
         form1.ADOQuery1.open; //ADOQuery1's SQL Properties is 'select * from [tablename]'
         end;
    end;//﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏﹏
    //天天蹬三轮-虽然很累-但很充实
    //﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋
      

  4.   

    ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
    ████解决ADO连接带密码的ACCESS数据库问题█████
    〓〓〓〓〓Ghyghost(著名关心CSDN结贴率爱国代表)〓〓〓〓
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
    ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
      笔者近日在写ADO连接带密码的ACCESS数据库时,当connected:=true;时,总是出现密码不对的对话框,最终在研究了TADOConnection.ConnectionString的内容创建过程时得到灵感,现与大家分享,本方法不需要添加其它的控件,就可进行连接,减少EXE文件大小。
      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,设置连接完成。