关于用ADO从多个EXCEL文件中检索数据的问题,200分,急 ( 积分: 200 )

  • 主题发起人 主题发起人 blackeagle136
  • 开始时间 开始时间
B

blackeagle136

Unregistered / Unconfirmed
GUEST, unregistred user!
我这里有20多个EXCEL文件,表的格式不太一样,但是有相同列,我需要根据相同的列来检索需要的数据,检索部分的程序如下:
for i:=0 to Memo1.Lines.Count-1 do
begin
ADOConnection1.Connected:=False;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+Memo1.Lines.Strings+';Extended Properties=Excel 8.0;Persist Security Info=False';
ADOConnection1.Connected:=True;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT 计划日期,设备名称,型号,规格 FROM [excel 8.0;database='+Memo1.Lines.Strings+'].[Sheet1$] WHERE 型号 LIKE "%'+Kword.Text+'%"'+' OR 规格 LIKE "%'+Kword.Text+'%"');
ADOQuery1.Parameters.Clear;
ADOQuery1.Open;
end;
其中i为Memo控件中文本的行数,Kword.Text是用户输入的检索数据,Memo1.Lines.Strings中则是要检索的EXCEL文件的路径,用i循环实现检索所有的文件,但是有的文件没问题,有的文件检索时则弹出错误提示"未知",也没有其它的提示,实在不知道问题出在哪里,我检查过文件的结构没问题,如过SQL检索时用精确查找=则没有问题,用模糊检索 LIKE 则会出现"未知"的错误提示,请大家帮忙分析一下,还有因为用的是i循环检索,检索的结果放在DBGRID中,检索下一个文件时则会将上一个文件检索的结果覆盖掉,这怎么解决啊?希望大家帮帮忙,谢谢了.
 
ExpressSpreadSheet
 
怎么没有人帮我一下啊,难道是我说的不明白?
 
终于有一点眉目了,可能是ADOQuery的问题,因为我的EXCEL表中有一个单元格的(内容)字串太长,如果删掉几个字符就没有问题,我想可能是模糊查询时对较长的字串不能处理,有人知道怎么解决这个问题吗?谢谢!
 
实在是查不出问题出在什么地方,只有静候大家的佳音了.
 
有没有检查Sheet1的名称对不对呢
 
Sheet1的名称没问题,我用精确查找时一点问题都没有,就是模糊查找时就会出错.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部