正在做一个把Excel中的数据追加到Access库中的小程序,已经可能字段名不相同,但数据类型符合要求.
我的做法是先把Excel数据转换成ACCES临时表,再取出源表和目的表中的各字段,再手动匹配字段,如a.XM=b.姓名等,匹配完后,再将数据追加到Access库中来.
前面的工作已经完成,但在追加时不知道要怎么样写SQL语句, 'INSERT INTO 表2 (SELECT * FROM 表1)' ,是否可以带字段条件(如FoxPro中的Field等)?
请教如何实现,或是有更好的解决方法!!谢谢!!
我的做法是先把Excel数据转换成ACCES临时表,再取出源表和目的表中的各字段,再手动匹配字段,如a.XM=b.姓名等,匹配完后,再将数据追加到Access库中来.
前面的工作已经完成,但在追加时不知道要怎么样写SQL语句, 'INSERT INTO 表2 (SELECT * FROM 表1)' ,是否可以带字段条件(如FoxPro中的Field等)?
请教如何实现,或是有更好的解决方法!!谢谢!!
解决方案 »
- delphi中关于treeview的使用
- idtcpsrever discnnect 后是否释放资源
- 如何锁定当先操作界面
- 请问有甚么好的表格控件可以象PowerBuilder的datawin那样的可以随意拖动并且具有打印功能的好表格??
- 这条SQL语句能否这样写?
- 请教Delphi for InstallShield安装时创建MSSQL数据库……
- 无类型文件怎么以只读方式打开--快
- 位操作
- 如何给计算字段付值?
- 用Delphi如何编写C++Builder版本的VCL组件?
- 100分求一个简单的问题答案?如何在DELPHI当中检测到本机是否装有FLASH控件?
- 怎样用Tquickreport报表中的TQRDBtext竖着显示汉字?
ADOConnection1.Execute(SQLStr);
Adoconnection1.Connected:=true;运行提示Insert 语句语法错误,不能这样写吗?请各位帮忙?!
ADOConnection1.Execute(SQLStr);
Adoconnection1.Connected:=true;我没验证过 你试试看
主要问题是源表和目的表的字段个数要一样
字段个数相同了,但还是这个错误提示,是不是别的地方有错??
请楼主再试试
贴上代码,再求各位帮助看看?!procedure TForm1.BBtImportClick(Sender: TObject);
var
SQLStr:string;
begin
try
Adoconnection1.Connected:=false;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyDoc\db1.mdb;'+'Persist Security Info=False';
Adoconnection1.Connected:=true; SQLStr:='Insert into temp(考号) (select 考号 from temp1)'; ADOConnection1.Execute(SQLStr);
adoconnection1.Connected:=true;
except
exit;
end;end;
var
SQLStr:string;
begin
try
Adoconnection1.Connected:=false;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyDoc\db1.mdb;'+'Persist Security Info=False';
Adoconnection1.Connected:=true;ADOQuery1.Connection := Adoconnection1;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Insert into temp(考号) (select 考号 from temp1)');
ExceSQL;
end;
// SQLStr:='Insert into temp(考号) (select 考号 from temp1)';
// ADOConnection1.Execute(SQLStr);
// adoconnection1.Connected:=true;
except
exit;
end;end;
只有试'Insert into temp(考号) values(123456)' 才不错,不知道原因了??
从可读性来讲,这个括号有应该是清楚一些,偏偏这里不要括号。
而同样在Access里如果用left join之类连接的话,不加括号还不行。如果连接的表比较多的话,要整一大堆括号才行。
呵呵