搜索dbgrid

时间:2013-06-13 14:29:13

标签: delphi excel-2007 dbgrid

我有delphi 7。

我想在dbgrid

中搜索数据

我使用adotable和数据源链接到excel。

我搜索了互联网,但只找到了如何创建新的Excel文档或如何链接Excel文档

但我想在所有行中搜索第一列

3 个答案:

答案 0 :(得分:2)

将Excel加载到ADOTable后,就像任何其他普通表一样。

最好不要在网格中搜索。相反,请使用AdoTable的Locate方法。

//or using [loCaseInsensitive,loPartialKey] options 
ADOTable1.Locate('FieldName', 'Value', []); 

您可能希望使用DisableControlsEnableControls来避免在找到所需值时以图形方式刷新网格,并使用书签返回原始位置。

HTH

答案 1 :(得分:0)

是的,Locate是更好的选择。 您的DBGrid链接到ClientDataSet或Query,在您的DataSource上使用de Locate。

MyClientDataSet.Locate(.... 有关更多详细信息,请在您的delphi代码中选择单词Locate,然后在delphi中打开您的帮助。

答案 2 :(得分:0)

while not adoquery1.Eof do
begin
  for I := 0 to adoquery1.FieldCount-1 do
  if (enhdbgrid1.Fields[i].value<>null) and (pos(uppercase(edit1.Text),uppercase(enhdbgrid1.Fields[i].Value))>0)  then
  begin
    Found := True;
    enhDBGrid1.SelectedField := enhdbgrid1.Fields[i];
    Break;
  end;
  if found then break;
  adoquery1.Next;
end;