![]() |
|
|
|
|
#1
|
|||
|
|||
|
В DBGrid выводется БД через запрос в Query. Как мне сделать так чтоб при вводе в edit значения и нажатия на кнопку фокус подал на нужную строчку в DBGrid где есть это значение, оно уникально и только в первом столбце?
Помогите пожалуйста, а то я чё то не допру как в DBGrid нужную строку по введенному значению выделить. |
|
#2
|
||||
|
||||
|
ОРГАНИЗАЦИЯ ПОИСКА В БД С ПОМОЩЬЮ SQL-ЗАПРОСА
В этом примере осуществляется поиск в таблице Data1 (в столбце Name) в соответствии с значением, вводимым в поле Edit1. Запишем в обработчике событий OnChange компонента Edit1 следующий код: Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT *');
ADOQuery1.SQL.Add('FROM Data1');
ADOQuery1.SQL.add('WHERE Name like ''' +'%'+Edit1.Text + '%''');
ADOQuery1.Active:=true;
end;Последний раз редактировалось Admin, 21.09.2008 в 13:36. |
|
#3
|
|||
|
|||
|
Спасибо я так делал но не дабавлял %,% видимо из-за этого только первый ввод срабатывал, а потом ошибка при попытке стереть и ввести другой номер. Это отлично работает и сойдёт.
Но я хотел немного по другому чтоб запрос оставался, т.е. значения не убирались и оставался только нужный, а чтоб фокус чисто переходил на строчку с нужным значением. Там вобще можно в DBGride фокус перемещать на нужную строку при нажатии на кнопку? Это так мне для самообразования). За пример спасибо Dux. Последний раз редактировалось Qwed86, 21.09.2008 в 11:08. |
|
#4
|
||||
|
||||
|
Используй функцию DBGrid.DataSource.DataSet.Locate() в обработчике OnClick твоей кнопки
|
|
#5
|
|||
|
|||
|
Вот я про это и говорил, так и думал есть что-то подобное. Спасибо
|