在DELPHI中用ADO方式连接EXCEL表,比较两列,两列数据的行数不同,如何比较
用"selectdistinct列1from表where列1notin(select列2from表)"这样的语句查询同一个表中的两列,想得到的结果是1列中去除包含的2列中...
用"select distinct 列1 from 表 where 列1 not in (select 列2 from 表)"这样的语句查询同一个表中的两列,想得到的结果是1列中去除包含的2列中的重复数据后的结果.
可是我用上面的查询,得到的结果是空的,只有把列1和列2的所有行都填上数据,也就是让列1和列2行数相同时,才能得到正确结果,怎么才能在行数不同的情况下也得到正确结果?
列1 列2 列3
1 2 2
2 3 4
3
4
这样的表格.如果用上面的语句处理.从列1中减去列2的数据,得到的结果是空.
如果从列2减列3,结果是3
这就是有问题的地方.各位大虾.帮帮我吧. 展开
可是我用上面的查询,得到的结果是空的,只有把列1和列2的所有行都填上数据,也就是让列1和列2行数相同时,才能得到正确结果,怎么才能在行数不同的情况下也得到正确结果?
列1 列2 列3
1 2 2
2 3 4
3
4
这样的表格.如果用上面的语句处理.从列1中减去列2的数据,得到的结果是空.
如果从列2减列3,结果是3
这就是有问题的地方.各位大虾.帮帮我吧. 展开
4个回答
展开全部
这里给你一个连接串
Const
ConnExcelStr = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\1.xls;Extended Properties=Excel 8.0;Persist Security Info=False';
这个连接串是用来连接“C:\1.xls”的
放一个ADOQuery到窗体上,在程序中把这个连接串赋值给它的Connectionstring属性
然后它就是你熟悉的数据库操作了
查询工作簿的语句(这里只写部分代码)
ADOQuery.SQL.Add('Select * from [Sheet1$]');//Sheet1是工作簿的名字 $不要忘记
ADOQuery.Open;
注明:
Excel的格式第一行必须是字段名
Const
ConnExcelStr = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\1.xls;Extended Properties=Excel 8.0;Persist Security Info=False';
这个连接串是用来连接“C:\1.xls”的
放一个ADOQuery到窗体上,在程序中把这个连接串赋值给它的Connectionstring属性
然后它就是你熟悉的数据库操作了
查询工作簿的语句(这里只写部分代码)
ADOQuery.SQL.Add('Select * from [Sheet1$]');//Sheet1是工作簿的名字 $不要忘记
ADOQuery.Open;
注明:
Excel的格式第一行必须是字段名
参考资料: http://zhidao.baidu.com/question/76077732.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能是列2的空行没有默认值的原因造成的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ADO方式连接EXCEL表,没用过
我一般采用
var ExcelApp: Variant;
str1:=currpath+ 'line'+'\'+ '日报表'+'月'+'.xls';
ExcelApp := CreateOleObject( 'Excel.Application' );
ExcelApp.Visible := False ;
ExcelApp.Caption := '控制程序调用 Excel 生成表格';
ExcelApp.WorkBooks.Open( str1 );
ExcelApp.WorkSheets[1].Activate;
ExcelApp.Cells[10,20].Value :='1020' //取值,赋值
我一般采用
var ExcelApp: Variant;
str1:=currpath+ 'line'+'\'+ '日报表'+'月'+'.xls';
ExcelApp := CreateOleObject( 'Excel.Application' );
ExcelApp.Visible := False ;
ExcelApp.Caption := '控制程序调用 Excel 生成表格';
ExcelApp.WorkBooks.Open( str1 );
ExcelApp.WorkSheets[1].Activate;
ExcelApp.Cells[10,20].Value :='1020' //取值,赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询