表格创建和 插入代码:
with adoquery1 do
close;
adoquery1.sql.Clear;
adoquery1.ParamCheck := false;
adoquery1.SQL.Text :='CREATE TABLE ['+tablename+'](物料编号 varchar(20) ,物料类型 varchar(20),物料名称 varchar(20),数量 varchar(20),总重量 varchar(20),货物来源 varchar(20),货主名称 varchar(20),联系方式 varchar(20),入库时间 varchar(20) ,备注 varchar(20))';
adoquery1.execsql;
adoquery1.sql.Clear;
adoquery1.sql.text :='INSERT ['+tablename+'] SELECT * FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source='+strpath+';User ID=Admin;Password=;Extended properties=Excel 5.0'')...[sheet1$];';
adoquery1.execsql;
with adoquery1 do
close;
adoquery1.sql.Clear;
adoquery1.ParamCheck := false;
adoquery1.SQL.Text :='CREATE TABLE ['+tablename+'](物料编号 varchar(20) ,物料类型 varchar(20),物料名称 varchar(20),数量 varchar(20),总重量 varchar(20),货物来源 varchar(20),货主名称 varchar(20),联系方式 varchar(20),入库时间 varchar(20) ,备注 varchar(20))';
adoquery1.execsql;
adoquery1.sql.Clear;
adoquery1.sql.text :='INSERT ['+tablename+'] SELECT * FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source='+strpath+';User ID=Admin;Password=;Extended properties=Excel 5.0'')...[sheet1$];';
adoquery1.execsql;
解决方案 »
- !!查了很多贴子,还是没解决!form2关闭时释放的问题!
- 结帖散分
- 诚招Delphi程序员(北京)
- 高分求救~!串口线程问题!
- 我的程序是用intraweb做的,转化为ISAPI的方式时,怎样上传。
- writeln 打印问题,急!!
- 为什么只能打印一个记录?
- 问一个简单的build project问题
- DBGRID与一数据库绑定,它的网格如何做到与ACCESS一样如当记录为“是/否”型时以是否有√来表示?
- 本人做了一个数据库的应用软件,用的是fox类型的数据库,现在我想把此数据库加密但不知方法,那位高手愿意辞教。
- delphi 2007 + INDY 10 发邮件问题
- 你们做项目用皮肤控件吗?
输出顺序 取决于 查询的排序字段(order by xxx,xxx,...)
EXC中
物料编号 物料类型 物料名称 数量 总重量 货物来源 货主名称 联系方 入库时间 备注
yy1357 原料烟叶 香料烟 1箱 200 云南保山 保山香料烟厂 15623265447 2011-8-9 10:20 AM 变形
导入SQL后
物料编号 物料类型 物料名称 数量 总重量 货物来源 货主名称 联系方 入库时备注
变形 云南保山 保山香料烟厂 1.52354e+010 08 09 2011 10.20 AM 1箱 yy1357 原料烟叶 香料烟 200
试试看加上这句管用么? Password=;HDR=Yes;
你创建的语句
CREATE TABLE ['+tablename+'](物料编号 varchar(20) ,物料类型 varchar(20),物料名称 varchar(20),数量 varchar(20),总重量 varchar(20),货物来源 varchar(20),货主名称 varchar(20),联系方式 varchar(20),入库时间 varchar(20) ,备注 varchar(20))
是联系方式你的Excel里面却是:联系方你修改下看看
SELECT 卡号,姓名,性别,籍贯,学历,工种,身份证号,工作单位,备注,getdate(),'管理员',
case when len(身份证号)=8 then 身份证号 when len(身份证号)=15 then '19'+substring(身份证号,7,6) when len(身份证号)=18 then substring(身份证号,7,8) end
from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\Documents and Settings\Administrator\桌面\导入标准格式.xls"
;Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False')...[安全卡培训表$]
INSERT into TestB([物料编号],[物料类型],[物料名称],[数量],[总重量],[货物来源],[货主名称],[联系方式],[入库时间],[备注]) SELECT [物料编号],[物料类型],[物料名称],[数量],[总重量],'+'[货物来源],[货主名称],[联系方式],[入库时间],[备注] FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source=C:\test.xls;Extended properties=Excel 8.0'')...[Sheet1$]还是指定一下对应的字段吧,试了下不指定还真的乱了
begin
close;
adoquery1.sql.Clear;
adoquery1.ParamCheck := false;
adoquery1.sql.text :='INSERT into ['+tablename+']([物料编号],[物料类型],[物料名称],[数量],[总重量],[货物来源],[货主名称],[联系方式],[入库时间],[备注]) SELECT '
+' [物料编号],[物料类型],[物料名称],[数量],[总重量],[货物来源],[货主名称],[联系方式],[入库时间],[备注] '
+' FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source=C:\test.xls;Extended properties=Excel 5.0'')...[Sheet1$]';
adoquery1.execsql;
end;