我用如下方法把Exdcel导入Access
但它提示:“表ab1已存在”,不能导入数据。请高手们帮助,多谢!procedure TForm1.Button3Click(Sender: TObject);
var
sSql:string;
begin
sSql:='select * into ab1 from [excel 8.0;database=e:\Excel\book1.xls].[sheet1$]';//ab1是 Access的一个表
  with ADOConnection1 do
    begin
      Connected:=True;
      Execute(sSql);
    end;
end;

解决方案 »

  1.   

    var
      sSql:string;
      tName: TStrings;
    begin
      tName := TStringList.Create;
      ADOConnection1.GetTableNames(tName, false);
      if tName.IndexOf('abl') >= 0 then ADOConnection1.Execute('drop table abl');
      ...
    end;
      

  2.   

    请问guge:能否提供具体代码?多谢!
      

  3.   

    weizi2000(秋风啊-秋的叹息) (
    的不错
    先判断表是否已经存在
    如果存在'drop table
      

  4.   

    你是想追加到abl还是创建新表呢?
      

  5.   

    多谢编程浪子,能否给我具体代码?我是想追加到abl我的信箱是:[email protected]
      

  6.   

    很简单,SQL语句修改一下就可以了:procedure TForm1.Button3Click(Sender: TObject);
    var
    sSql:string;
    begin
    sSql:='insert into ab1 select * from [excel 8.0;database=e:\Excel\book1.xls].[sheet1$]';     //ab1是 Access的一个表
      with ADOConnection1 do
        begin
          Connected:=True;
          Execute(sSql);
        end;
    end;
      

  7.   

    注意一点:要保证字段完全一致才行,否则要在SQL语句中加上字段列表
      

  8.   

    多谢编程浪子。我另发贴,请你帮我给出Access导出Exdcel的方法(代码)。
      

  9.   

    结贴:
    编程浪子(18分)
    weizi2000(秋风啊-秋的叹息)(2分)