0

我有德尔福7。

我想在 dbgrid 中搜索数据

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

我在网上搜索了一下,只找到了如何新建excel文档或者如何链接excel文档

但我想通过所有行搜索第一列

4

3 回答 3

2

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

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

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

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

高温高压

于 2013-06-13T14:40:13.247 回答
0

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

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

于 2013-06-15T22:58:39.633 回答
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;
于 2016-06-13T15:13:23.577 回答