我有delphi 7。
我想在dbgrid
中搜索数据我使用adotable和数据源链接到excel。
我搜索了互联网,但只找到了如何创建新的Excel文档或如何链接Excel文档
但我想在所有行中搜索第一列
答案 0 :(得分:2)
将Excel加载到ADOTable后,就像任何其他普通表一样。
最好不要在网格中搜索。相反,请使用AdoTable的Locate
方法。
//or using [loCaseInsensitive,loPartialKey] options
ADOTable1.Locate('FieldName', 'Value', []);
您可能希望使用DisableControls
和EnableControls
来避免在找到所需值时以图形方式刷新网格,并使用书签返回原始位置。
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;