回 帖 发 新 帖 刷新版面

主题:请问将excel表导入ACCESS怎么做的?

请各位高手帮忙回答下!如何将excel表的数据导入到ACCESS中去!
我现在卡在这个地方了!谢谢各位先了!现在是毫无头绪的说!

回复列表 (共6个回复)

沙发

用一个tadoquery控件连接excel,再用一个tadoquery控件连接ACCESS,二者通过查询再导入数据

板凳

感谢你的回答!目前正在写!谢谢!

3 楼

老大帮忙看一下!代码!郁闷老是提示错误!可是我不知道错在哪....下面是我的代码!谢谢!他都提示prdt$  不是一个有效名称!晕!我是照书里那么做的!

procedure TForm1.Button1Click(Sender: TObject);
var
  sSql, mdbpath, xlspath: string;
begin
  if (trim(edit1.Text) = '') or (trim(edit2.Text) = '') then
  begin
    MessageBox(GetActiveWindow(), '请正确选择相关路径!', '警告', MB_OK +
      MB_ICONWARNING);
    exit;
  end;
  mdbpath := trim(edit1.Text);          //MDB路径
  xlspath := trim(edit2.Text);          //Excel路径
  ADOConnection1.Connected := False;
  try
    ADOConnection1.ConnectionString :=
      'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
      mdbpath + ';Persist Security Info=False';
    ADOConnection1.Connected := true;
    try
      adoquery1.Close;
      adoquery1.SQL.Clear;
      sSql :=
        'INSERT INTO  号码数据 (号码,品牌,套餐编号,营业部,代办点名称,领卡日期,预领价格,是否赠卡,导入日期,开打日期,备注)' +  //号码,品牌,套餐编号,营业部,代办点名称,领卡日期,预领价格,是否赠卡,导入日期,开打日期,备注
      ' SELECT' +
        ' 号码,品牌,套餐编号,营业部,代办点名称,领卡日期,预领价格,是否赠卡,导入日期,开打日期,备注' +
        ' FROM [excel 8.0;database=' + xlspath + '].[prdt$]';
      adoquery1.Parameters.Clear;
      adoquery1.ParamCheck := false;
      adoquery1.SQL.Text := sSql;
      adoquery1.Execsql;
      MessageBox(GetActiveWindow(), '批量导入EXCEL成功!', '警告', MB_OK +
        MB_ICONWARNING);
      form2:=tform2.create(nil);
      with form2.ADOQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Text:='SELECT * FROM 号码数据';
        Open;
      end;
      form2.ShowModal;
      form2.Free;
    except
      MessageBox(GetActiveWindow(), '批量导入EXCEL失败!', '警告', MB_OK +
        MB_ICONWARNING);
    end;
  except
    MessageBox(GetActiveWindow(), '连接ACCESS失败!', '警告', MB_OK +
      MB_ICONWARNING);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  close;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  OpenDialog1.Title := '请选择相应的MDB文件';
  OpenDialog1.Filter := 'access (*.mdb)|*.mdb';
  if OpenDialog1.Execute then
    edit1.Text := OpenDialog1.FileName;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
  OpenDialog1.Title := '请选择相应的Excel文件';
  OpenDialog1.Filter := 'Excel(*.xls)|*.xls';
  if OpenDialog1.Execute then
    edit2.Text := OpenDialog1.FileName;
end;

end.

4 楼

FROM [excel 8.0;database=' + xlspath + '].[prdt$]';
这句话有问题吧,你没有用tadoConnection1连接他的连接字符串?

5 楼

麻烦老大帮我看一下!我把源代码发到你邮箱!谢谢!快疯了还是弄不出来!

6 楼

最近实在是太忙呀。天天加班都没有休息过,没有办法,你到这几个帖子上看看吧
http://topic.csdn.net/t/20031114/20/2461899.html
http://www.programfan.com/club/old_showbbs.asp?id=14370
实在是不好意思!!抱歉

或者看这个帖子上的读取excel字段,然后把它整合添加到assess中。http://www.wenyiwen.cn/a26/how187354.htm

我来回复

您尚未登录,请登录后再回复。点此登录或注册