关于 将Excel数据批量导入到Access中的问题!!!

zhaping6525 2017-08-21 10:44:54
procedure TFm_Main.Button6Click(Sender: TObject);
var
sSql, xlspath , mdbpath: string;
begin
if OpenDialog1.Execute then
xlspath := OpenDialog1.FileName; //Excel路径
mdbpath := extractfilepath(application.exename) + 'Data.mdb';
if trim(xlspath) = '' then
exit;
Fm_SWDJ.ADOC.Connected := False;
try
Fm_SWDJ.ADOC.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
mdbpath + ';Persist Security Info=False';
Fm_SWDJ.ADOC.Connected := true;
try
///
adoquery1.Close; //////////////////////////////////////
adoquery1.SQL.Clear; // 导入数据之前
sSql := 'Delete * From 收文信息列表'; // 先清空数据库
adoquery1.Parameters.Clear; //
adoquery1.ParamCheck := false; //
adoquery1.SQL.Text := sSql; //////////////////////////////////////
adoquery1.Execsql; //////////////////////////////////////
///
adoquery1.Close; //
adoquery1.SQL.Clear; //////////////////////////////////////
sSql :=
'INSERT INTO 收文信息列表 ( 文件编号 , 标题 , 文号 , 制文单位 , 登记日期 , 文件类别 , 实体分类 , 页数 , 份数 , 备注)' +
' SELECT ' +
' 文件编号 , 标题 , 文号 , 制文单位 , 登记日期 , 文件类别 , 实体分类 , 页数 , 份数 , 备注 ' +
' FROM [excel 8.0;database=' + xlspath + '].[Sheet1$]';
adoquery1.Parameters.Clear;
adoquery1.ParamCheck := false;
adoquery1.SQL.Text := sSql;
adoquery1.Execsql;
MessageBox(GetActiveWindow(), '批量导入EXCEL成功!', '恭喜', MB_OK +
MB_ICONWARNING);
Fm_SWDJ.ADOD.Active := False;
Fm_SWDJ.ADOD.Active := True;
except
MessageBox(GetActiveWindow(), '批量导入EXCEL失败!', '警告', MB_OK +
MB_ICONWARNING);
end;
except
MessageBox(GetActiveWindow(), '连接ACCESS失败!', '警告', MB_OK +
MB_ICONWARNING);
end;
end;
...全文
643 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39930962 2017-08-22
  • 打赏
  • 举报
回复
请把 Provider=Microsoft.Jet.OLEDB.4.0 改成 provider=microsoft.ace.oledb.12.0 试试
coderee 2017-08-22
  • 打赏
  • 举报
回复
学习,路过。
doloopcn 2017-08-21
  • 打赏
  • 举报
回复
错误提示找不到你的EXCEL表格中的SHEET啊
doloopcn 2017-08-21
  • 打赏
  • 举报
回复
引用 6 楼 zhaping6525 的回复:
好了,我试了一下,如果我用 excel 2003 就可以,但是用excel 2007就不行。。。我想请问,前面语句中 “”Excel 8.0 “”表示什么意思呢?有哪位大神可以详细给我解释一下吗,谢谢了。。。。
这个问题得找微软解释才解释得清楚,开发EXCEL之类的,最好手头上有一本微软提供的函数说明书、API、SDK等等的工具书,就是那种很浪费纸张,每本都厚得不行的那种
zhaping6525 2017-08-21
  • 打赏
  • 举报
回复
语句报错如图中所示。。。。
zhaping6525 2017-08-21
  • 打赏
  • 举报
回复
自己顶自己!!!!就是图中这个 红色语句出错。。。刚开始玩delphi,新手求指教!(PS:这个语句我前几次就可以完全实现,但是突然一下子就不行了,自己试了几天,还是不行,只有求教各位大神了)
zhaping6525 2017-08-21
  • 打赏
  • 举报
回复
好了,我试了一下,如果我用 excel 2003 就可以,但是用excel 2007就不行。。。我想请问,前面语句中 “”Excel 8.0 “”表示什么意思呢?有哪位大神可以详细给我解释一下吗,谢谢了。。。。
zhaping6525 2017-08-21
  • 打赏
  • 举报
回复
不是呀,我的Sheet名字全部改为Sheet1了。。。。以前是汉字,后来为了避免出错,全部换为 Sheet1.。。。。。。
zbdzjx 2017-08-21
  • 打赏
  • 举报
回复
根据楼上说的猜测,Excel中的第一个Sheet的名字不是Sheet1,被改成其他字了。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧