主题:请问将excel表导入ACCESS怎么做的?
tszylmd
[专家分:0] 发布于 2006-06-17 19:44:00
请各位高手帮忙回答下!如何将excel表的数据导入到ACCESS中去!
我现在卡在这个地方了!谢谢各位先了!现在是毫无头绪的说!
回复列表 (共6个回复)
沙发
hanwb2002 [专家分:1340] 发布于 2006-06-18 09:33:00
用一个tadoquery控件连接excel,再用一个tadoquery控件连接ACCESS,二者通过查询再导入数据
板凳
tszylmd [专家分:0] 发布于 2006-06-18 19:33:00
感谢你的回答!目前正在写!谢谢!
3 楼
tszylmd [专家分:0] 发布于 2006-06-18 21:22:00
老大帮忙看一下!代码!郁闷老是提示错误!可是我不知道错在哪....下面是我的代码!谢谢!他都提示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 楼
hanwb2002 [专家分:1340] 发布于 2006-06-19 09:28:00
FROM [excel 8.0;database=' + xlspath + '].[prdt$]';
这句话有问题吧,你没有用tadoConnection1连接他的连接字符串?
5 楼
tszylmd [专家分:0] 发布于 2006-06-19 11:36:00
麻烦老大帮我看一下!我把源代码发到你邮箱!谢谢!快疯了还是弄不出来!
6 楼
hanwb2002 [专家分:1340] 发布于 2006-06-20 11:43:00
最近实在是太忙呀。天天加班都没有休息过,没有办法,你到这几个帖子上看看吧
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
我来回复