![]() |
|
![]() ![]() ![]() |
|
ilmurat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.10.2010 Репутация: нет Всего: -1 |
Здравствуйте, у меня возник такой вопрос можно ли реализовать поиск по первым 3 буквам фамилии имени и отчества в DBgrid и чтобы после завершения поиска все похожие значения выводильсь в StringGrid? Да ихотелось бы сделать так чтобы из StringGrid можно было вятянуть определенную запись на форму для редактирования, заранее Спасибо.
|
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
DBgrid не содержит данных, поиск надо делать в источнике данных для него (DataSet). в DataSet можно перебрав все записи, и проверить каждую, если она удовлетворяет условию то добавить ее в StringGrid; либо сделать отдельны SQL запрос и получить только нужные данные. и не понятно зачем нужен StringGrid, если уже используете DBgrid? -------------------- Кольцов Виктор Владимирович |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
Конечно можно, только это логичней всего сделать запросом.
![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
ilmurat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.10.2010 Репутация: нет Всего: -1 |
делаю базу данных, на первой форме у меня DBgrid со вземи значениями из базы есть 3 edita для ввода букв по которым проводится поиск , который я делал с помощью Locate. но он только выделяет найденную строку в DBgride, и даже если значения повторяются он выбирает одно из них не знаю по какому принципу. А нужно сделать так чтобы при нажатии на кнопку поиска открывалась новая форма, куда собственно и выводились все результаты поиска. и уже оттуда при нажатии на кнопку редактировать открывалась форма редактирования данных, эта форма у меня есть.
![]() |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
поидее форма списка длжна открывать себя же (а может и просто изменять список в себеже ,тогда кури свойство Filter)но только с параметрами поиска... намек ясен?
если нет то расскаыавай что за компоненты доступа какие там запросы у тебя написаны. Это сообщение отредактировал(а) Frees - 6.10.2010, 11:23 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
ilmurat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.10.2010 Репутация: нет Всего: -1 |
ребят я не знаю как вам объяснить и чесно говоря вас немного не допонимаю так как делфи учил с книжек, и начал этим заниматься не давно. Вообщем поиск у меня реализован только он мне не подходит он только выделяет мне первые найденные значения т.е если значения повторяются он мне выводит только одно из них , НАПРИМЕР (АЛЕксеева АЛЕна АЛЕксеевна и АЛЕксеев АЛЕксандр АЛЕксандрович) он просто выделит в DBgride 1 Из этих данных.
Добавлено через 1 минуту и 17 секунд а нужно чтобы в StringGrid Выводились все. Добавлено через 1 минуту и 38 секунд Как это можно сделать??? |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
почему именно StringGrid Добавлено через 34 секунды через Filter. покажи как у тебя сделан поиск -------------------- Кольцов Виктор Владимирович |
|||
|
||||
ilmurat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.10.2010 Репутация: нет Всего: -1 |
ffield := 'Имя';
ffield1 := 'Фамилия'; ffield2 := 'отчество'; fvalue := edit2.text; fvalue1 := edit1.text; fvalue2 := edit3.text; opts := [loCaseInsensitive,loPartialKey]; if not AdoTable1.Locate(ffield, fvalue, opts) then if not AdoTable1.Locate(ffield1, fvalue1, opts) then if not AdoTable1.Locate(ffield2, fvalue2, opts) then ShowMessage('Не найденно'); end; Не обязательно в StringGrid просто чтобы было наглядно видно сколько строк данных есть и из них выбрать нужную мне для редактирования |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
Это сообщение отредактировал(а) Frees - 6.10.2010, 12:04 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
ilmurat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.10.2010 Репутация: нет Всего: -1 |
огромное за это спасибо, работает отлично
![]() |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
стереть все в едитах
Добавлено через 23 секунды тогда будет AdoTable1.Filtered := false -------------------- Кольцов Виктор Владимирович |
|||
|
||||
ilmurat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.10.2010 Репутация: нет Всего: -1 |
СПАСИБО, КАК СМОГУ ОБЯЗАТЕЛЬНО +++
![]() |
|||
|
||||
ilmurat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 5.10.2010 Репутация: нет Всего: -1 |
Спасибо еще раз пригодилось в армии))))))
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |