我把EXCEL导入到ACESS中时,会自动打开office2000,还有瑞星的查毒.烦..

bells2000 2005-03-23 07:16:40
还有发觉好慢,,如果我在后台运行,office2000没有显示出来,瑞星还是有的,速度同样慢.
请问有没有什么办法不用打开这些啊,,我代码如下;

procedure TForm1.EX1Click(Sender: TObject);
var filename:string;

begin
fileName:='';
opendialog1.FileName:='';
opendialog1.Execute;
if opendialog1.FileName='' then Exit;
filename:=opendialog1.FileName;

Excelapp.Workbooks.Open (filename,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,1);


adoConnection1.Execute('delete from table1');
adoConnection1.Execute('INSERT INTO table1(姓名,考勤号码,日期, 对应时段,上班时间,下班时间,签到时间,签退时间)' + 'SELECT 姓名,考勤号码,日期,对应时段, 上班时间,下班时间,签到时间,签退时间' +
' FROM [excel 8.0;database=' + fileName + '].['+GetName(FileName)+'$]');


Excelapp.Workbooks.Close(1);
ExcelApp.Quit;
with adoQuery1 do
begin
close();
sql.clear;
sql.Text:='select 姓名,考勤号码, 对应时段,上班时间,下班时间,签到时间,签退时间,每天工作时间 from table1';
open;
end;

end;
...全文
115 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bells2000 2005-03-28
  • 打赏
  • 举报
回复
谢了大家我现在给分, 我再开个贴大家再讨论吧,
dicke 2005-03-27
  • 打赏
  • 举报
回复
adoConnection1.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=E:\Delphi\Demo001\Book1.xls;Mode=Share Deny None;Extended Properties=Excel 8.0';
adoConnection1.Open;
ADOQuery1.Connection:= adoConnection1;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * From [Sheet1$]');
ADOQuery1.Open;

这是我用Delphi刚刚测试通过了,你再试试吧
caiso 2005-03-27
  • 打赏
  • 举报
回复
帮顶一下
dicke 2005-03-26
  • 打赏
  • 举报
回复
adoConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";'+'Data Source='+Trim(Edit2.Text)+';Mode=Read;Extended Properties=Excel 8.0;Persist Security Info=True';
adoConnection1.Connected:=true;
看看你的ADOConnection1是否这样连接的
其中:edit2.text为你的Excel文件所在的路径
dicke 2005-03-26
  • 打赏
  • 举报
回复
4)用ADOQuery1连接到adoConnection1,然后在ADOQuery1中写入select * From [$Sheet]。
我这没有Delphi,这样你再试一次吧。
你的Excel文件指定位置了吗?存在吗?
caiso 2005-03-24
  • 打赏
  • 举报
回复
顶一下
dicke 2005-03-24
  • 打赏
  • 举报
回复
不好意思,上面第一步的第三小步应该修改的是Extended properties=Excel 8.0
dicke 2005-03-24
  • 打赏
  • 举报
回复
此办法我也试过很慢,但你还有另一个选择呀
1、adoConnection1连接设置以下相关属性
 1)选择Microsoft.Jet.OLEDB.4.0
 2)在属性第二页找到你所要导入的Excel文件
 3)在属性最后一页修改里面的dbEncrypt为Excel 8.0
 4)用ADOQuery1连接到adoConnection1,然后在ADOQuery1中写入select * From [Sheet$]。
 注:[Sheet$]其中sheet为Excel中的分页名称
2、adoConnection2与ADOQuery2就安正常连接和打开数据库就OK了。
3、用循环把ADOQuery1中的数据存入数据中就可了(打开的ADOQuery2中)
此方法不用打开Office,比上面方法快
  • 打赏
  • 举报
回复
把杀毒对OFFICE的权限关了.
  • 打赏
  • 举报
回复
Excelapp.visible:=false;
bells2000 2005-03-24
  • 打赏
  • 举报
回复
TO:dicke(dicke) 不行啊出错:外部表不是预期的格式..
bells2000 2005-03-24
  • 打赏
  • 举报
回复
还有我想问一下, EXCEL8.0 文件是office2000和office2003也是这个8.0的吗??
bells2000 2005-03-23
  • 打赏
  • 举报
回复
晕没人帮帮我吗??
我顶

2,507

社区成员

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

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