s:='insert into CPJG (pm,pj,clxh,clgg,pjcldw,pjdwmz,pjdwjz)';
s:=s+' select a,b,c,d,e,f,g FROM ';
s:=s+'OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', ''Excel 8.0;Database='+OpenDialog.FileName+''',''SELECT * FROM [sheet1$]'') ';
with qry do
begin
Close;
SQL.Clear;
SQL.Add(s);
ExecSQL;
end;
假设数据库在x电脑上,软件在x电脑上运行且excel文件也在x电脑上,可以成功执行此代码
如果数据库在x电脑上,软件在y电脑上,excel文件也在y电脑上,则不能运行此代码,excel导入出错
问题出在什么地方,怎么解决。
s:=s+' select a,b,c,d,e,f,g FROM ';
s:=s+'OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', ''Excel 8.0;Database='+OpenDialog.FileName+''',''SELECT * FROM [sheet1$]'') ';
with qry do
begin
Close;
SQL.Clear;
SQL.Add(s);
ExecSQL;
end;
假设数据库在x电脑上,软件在x电脑上运行且excel文件也在x电脑上,可以成功执行此代码
如果数据库在x电脑上,软件在y电脑上,excel文件也在y电脑上,则不能运行此代码,excel导入出错
问题出在什么地方,怎么解决。
1.将文件传到Y电脑再导入
2.将本地文件导入到本地的临时表,再将临时表导入,你可以在X电脑建个ODBC连到EXECL文件,再用ADOQUERY连到这个ODBC做查询,将查询到的结果INSERY进Y的数据库
ODBC连EXECL
ADO1连ODBC
ADO1做查询
while not ADO1.EOF do
a:=fieldbyname(.....)
b:=....
......
ADO2连Y电脑
ADO2.SQL.ADD(INSERT......VALUSE(a,b...));
end;
大致思路就是这样,你自己再组织下应该很容易了