Excel文件的tbDetail表里有两例数据:
 日期  数据
2007-4-10  1.906
2007-4-9  1.879
2007-4-6  1.861ADOquery1.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;User ID=Admin;Data Source=All.xls;Persist Security Info=False;Jet OLEDB:Database Password=';ADOquery1.Close;
ADOquery1.SQL.Clear;
ADOquery1.SQL.Add('Select 日期,数据 From [tbDetail$] Where (DateValue(日期))>(DateValue(''2007-4-6'')) Order by 日期 Asc');
ADOquery1.Open;按理说查询的结果应该是:
 日期  数据
2007-4-10  1.906
2007-4-9  1.879
但实际的结果却是:
 日期  数据
2007-4-10  1.906
2007-4-10  1.906
2007-4-9  1.879
2007-4-9  1.879为什么会这样的?

解决方案 »

  1.   

    我知道加Distinct可以。但为什么不加时会出现重复的查询结果呢?
      

  2.   

    要是在Access里,不加Distinct也会有正确的结果。
      

  3.   

    我觉得实在不行,你可以将这些数据读取到ACCESS,建一个临时表,在查询数据.
    这样也挺方便的.
      

  4.   

    有一点点进展了。
    如果查询不加“ Order by 日期 Asc”,结果就是正确的。但一加上“ Order by 日期 Asc”,就会出现重复结果了。