|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.06.2014, 21:36 | #1 |
Пользователь
Регистрация: 14.06.2014
Сообщений: 11
|
Фильтрация
Здравствуйте. В общем, имеется БД MS Access, в которой 4 таблицы: delivery(id, stock_num, asset_name, id_sort, amount, id_units, sum, del_date, id_pic), units(id, unit_name), sort(id, sort_name, sort_number) и pic(id, pic_name, pic_post). Таблицы units, sort и pic являются справочниками для таблицы delivery (думаю, понятно, по каким полям они связаны). В Delphi создал форму для добавления/удаления данных, в которой находится DBGrid, кнопки и компоненты для работы с БД. В ADOTable таблицы delivery для отображения в DBGrid скрыл поля id, id_sort, id_units, id_pic; но добавил LookUp поля sort, units, pic, в которых данные из одноименных таблиц нужных мне полей. Занес данные в таблицу. Далее, на другой форме имеется DBGrid, DBLookupComboBox, ADOQuery и два DataSource. DBLookupComboBox принимает данные из таблицы sort. Мне нужно сделать так, чтобы при выборе в DBLookupComboBox в DBGrid отображались записи, в которых есть выбранное название.
Написал такой код: Код:
Я в БД нуб и, в основном, все делал по примерам. |
15.06.2014, 08:21 | #2 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Для простоты переделаем ADOQuery на ADOTable для DBLookupComboBox (хотя, и квери здесь ни в чем не провинился).
В инспекторе объектов (называют "время разработки" или "design-time") делаем следующие манипуляции: - ADOTable1.TableName = sort (не забыв указать в свойстве Connection что требуется) - Datasource1.DataSet = ADOTable1 - DBLookupComboBox.ListSource = Datasource1; - DBLookupComboBox.KeyField = id - DBLookupComboBox.ListField = sort_name При создании формы не забываем активировать ADOTable1. Теперь не понадобится создавать лишнее поле sort в таблице delivery: Код:
|
15.06.2014, 13:01 | #3 | |
Пользователь
Регистрация: 14.06.2014
Сообщений: 11
|
Цитата:
Еще такой вопрос: а если этих комбобоксов будет два, чтобы фильтровали по двум полям, то есть один фильтрует результат фильтрации второго и наоборот. Как это можно организовать? |
|
15.06.2014, 21:08 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Код:
|
15.06.2014, 21:50 | #5 |
Пользователь
Регистрация: 14.06.2014
Сообщений: 11
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Фильтрация | prod | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 0 | 16.01.2013 14:56 |
Фильтрация | delfin07 | БД в Delphi | 0 | 04.01.2013 12:20 |
Фильтрация | auffasst | Общие вопросы Delphi | 3 | 21.06.2010 18:10 |
Фильтрация | Tvik | БД в Delphi | 21 | 10.03.2010 13:22 |
Фильтрация | Лукманов Александр | БД в Delphi | 1 | 26.06.2008 10:18 |