我用的是ACCESS 数据库, TEST,SAMPLE 都有密码,
其中ADOConnection1连接test,
    ADOConnection2连接SAMPLE,
   Adoquery3连接ADOConnection2
要求把数据库SAMPLE的表A1拷贝到数据库test中我执行的以下代码Adoquery3.Close;
Adoquery3.SQL.Clear ;
Adoquery3.SQL.Add('insert into TEST.mdb.a1 SELECT *  FROM SAMPLE.mdb.A1');
Adoquery3.ExecSQL ; 系统提示密码不正确,
请问怎样解决,
或者有其他方法吗?(把数据库SAMPLE的表A1拷贝到数据库test中

 

解决方案 »

  1.   

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

  2.   

    静态用 jpyc(九品御厨) 的方法。动态:
    Const ConnectStr = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False;Jet OLEDB:Database Password=%s';
    ...
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      AdoConnection1.ConnectionString:=format(ConnectStr,[AppPath+'DB\aa.mdb','aaa']);
      //showmessage(AdoConnection1.ConnectionString);
      AdoConnection1.Connected :=true;
    end;
      

  3.   

    静态用 jpyc(九品御厨) 的方法,动态:
    Const ConnectStr = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False;Jet OLEDB:Database Password=%s';
    ...procedure TForm1.Button1Click(Sender: TObject);
    begin
     AdoConnection1.ConnectionString:=format(ConnectStr,[AppPath+'DB\aaa.mdb','aaa']);
    // showmessage(AdoConnection1.ConnectionString);
     try
       AdoConnection1.Connected :=true;
     except
       ...
     end; 
    end;
      

  4.   

    登陆时我是如下连接数据库的
    不知道错在哪里?
     ADOConnection11.ConnectionString :=
                                      'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
                                       ExtractFilePath(ParamStr(0)) + 'source.mdb'+
                                      ';Persist Security Info=False;Jet OLEDB:Database Password=illusion2003';    ADOConnection1.Open;ADOConnection2.ConnectionString :=
                                      'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
                                       ExtractFilePath(ParamStr(0)) + 'EDR2002.mdb'+
                                      ';Persist Security Info=False;Jet OLEDB:Database Password=illusion2003';
        ADOConnection2.Open;
      

  5.   

    你们的方法在进行数据连接时确实是没有问题,也可以正常显示数据
    但当我执行
    'insert into TEST.mdb.a1 SELECT *  FROM SAMPLE.mdb.A1‘
    是就出现提示“密码无效”,
    如果我把SAMPLE 的密码删除,一切正常。我现在有以下想法:
    因为我用ADOQuery3来执行'insert into TEST.mdb.a1 SELECT *  FROM SAMPLE.mdb.A1‘,
       而ADOQuery3 与TEST数据库相连,密码通过ADOConnection1可以验证,SMAPLE与ADOConnection2相连,在这里不能通过验证(ADOQuery3与ADOConnection1相连)。
    是不是在SQL语句需要加上什么?因为小弟能力有限,还望各位帮忙帮忙!
    谢谢!