2013-06-13 2 views
0

У меня есть Дельфи 7.Выберите DBGrid

Я хочу, чтобы искать данные внутри DBGrid

То, что я связан, чтобы преуспеть с помощью adotable и источника данных.

Я искал в Интернете и только нашел, как создать новый документ первенствовать или как связать документ первенствовать

Но я хочу, чтобы найти первый столбец через все строки

ответ

2

После Эксел загруженный в ADOTable, он похож на любую другую обычную таблицу.

Лучше не искать в сетке. Вместо этого используйте для этого метод Locate вашего AdoTable.

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

Вы можете использовать DisableControls и EnableControls, чтобы избежать сеток освежающих графический в то время как вам найти необходимые значения и закладки, чтобы вернуться в исходное положение.

НТН

+0

спасибо ваш совет был очень полезным – user2482023

+2

@ user2482023, если это помогло вам принять ответ, чтобы другие люди знали, что ваш вопрос разрешен и, возможно, может использовать одно и то же решение. Проверьте [это] (http://meta.stackexchange.com/questions/5234/how-does -прихват-ответ-работа) для получения дополнительной информации. –

0

Да, местонахождение является лучшим выбором. Ваш DBGrid связан с ClientDataSet или Query, используйте команду «Найти на вашем источнике данных».

MyClientDataSet.Locate (.... Для получения более подробной информации о вашем DELPHI кода, выберите слово Расположить и F1 открыть вам помочь в Дельфах.

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;