如下表:1    A       B    C    D      E
2  343450A  410  450  2.90   32.90 
3  343450A  530  538  2.90   32.90 
4  343450A  550  550  2.90   32.90 
5  353450A  610  610  3.10   33.00 
6  363048A  400  430  3.10   29.00 已知A:=343450A B:=550,如何求得 行号: 4 ?

解决方案 »

  1.   

    窗体上放ADOConnection1
    ConnectionString := "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=F:\Book1.xls; Extended Properties="Excel 8.0; HDR=Yes""
    LoginPrompt := False;
    Connected := True;ADOQuery1
    Connection := ADOConnection1;
    SQL := "Select * from [Sheet1$]"
    Active := True;DataSource1
    DataSet := ADOQuery1;DBGrid1
    DataSource := DataSource;procedure TForm1.Button1Click(Sender: TObject);
    var
      Value: Variant;
    begin
      ADOQuery1.Open;
      Value := VarArrayCreate([0, 1], varVariant);
      Value[0] := '343450A';
      Value[1] := '550';
      if ADOQuery1.Locate('A; B', Value, []) then
        ShowMessage(IntToStr(ADOQuery1.RecNo+1));
    end;
      

  2.   

    多谢cncharles(旺仔):
        憋了我有十天了.
        感激之至,声泪俱下. 结贴.还有一事想请教, 我是动态直接访问的Excel,var ExcelApp: Variant;
    ExcelApp := CreateOleObject( 'Excel.Application' );然后打开的我的表, 可不可以综合到一起呢? 两个方法一起用比较慢.
    我是初学这方面的东西.
    再次感谢.