我用*.udl文件连接了一个有密码的access文件,可是不知道为什么测试连接就提示如下
信息:
测试连接失败,因为初始化提供程序时发生错误。无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。
其他程序一直也没有用该access文件

解决方案 »

  1.   

    从你的错误信息看,不知到这个错误是什么时候出现的,是程序运行时?还是建立连接时?还是在F9的调试时?
    如果运行时确保你不要运行两个实列;
    如果是建立连接时确保你的ODBC设置正确;
    如果是F9调试时,请关掉在程序设计时激活的数据库,改为运行时打开数据库。
      

  2.   

    直接用ADOConnection向导连不行吗?在其最后一个标签[所有]中的Jet OLEDB:Database Password中输入密码就可以了
      

  3.   

    应该就是 xthmpro_cn() 所说的情况。
    或者把adoconnection的login prompt改为false
      

  4.   

    CONNSTRING := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=';
        CONNSTRING := connstring + ExtractFilePath(paramstr(0)) + 'DB.mdb;Persist Security Info=False;Jet OLEDB:DataBase password=service';
      

  5.   

    解决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,设置连接完成。 
      

  6.   

    一段“袄袄”复杂的连接代码,不过特好用
    var
      sconstr:string;//连接语句
      sdbpath:string;//数据库路径
      smm:string;    //密码
    begin
      smm:='AAA';
      try
        sdbpath:=ExtractFilePath(Application.ExeName)+'AA67.MDB';
        sconstr:='Provider=Microsoft.Jet.OLEDB.4.0;'+
               'User ID=Admin;Data Source='+sdbpath+';'+
               'Mode=Share Deny None;Extended Properties="";'+
               'Locale Identifier=2052;Persist Security Info=False;'+
               'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'+
               'Jet OLEDB:Database Password='+smm+';'+
               'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;'+
               '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';
        if DM1.ADOCn1.Connected = True then DM1.ADOCn1.Connected:=False;
        DM1.ADOCn1.ConnectionString:=sconstr;
        DM1.ADOCn1.Connected:=True;//DM1.ADOCN1:TADOCONNECTION
      except
        Application.MessageBox('无法连接数据库!','错误',MB_OK+MB_ICONSTOP);
        Halt;
      end;
    end;