![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Добрый вечер. У меня есть база в аксессе. Таблицы: Dom, Kvart, Zilci. Подключена к делфи ч-з АДОконект. Подскажите, через какие компоненты лучше отображать данные, чтобы была возможность организовать поиск по полям из разных таблиц. Например, в Edit1 ввели "Вася". Мне нужно Чтоб отобразился только тот дом, в котором живет вася, только та квартира, в которой он живет, и из всех жильцов этой квартиры только один Вася. Или, если в эдит ввели 2-ой Донской, должны отобразиться домв с двнным адресом и все квартиры в них и все жильцы квартир.
Сейчас у меня все НЕ работает ![]() Dom --> ADOTable1 --->DataSource1 --> DBGrid1 / Kvart ---> ADOTable2 ---> DataSource2 ---> DBGrid2 / Zilci ---> ADOQuery1 ---> DataSource3 ---> DBGrid3. В DataSource Query указан DataSource2. В на в кладке Diagramm датамодуля выставлены связи. Dom - главная таблица, Kvart - зависимая. Zilci зависит от Kvart. Проблема в следующем: пишу запрос fDM.adoquery1.sql.add('Select Distinct Z.*'); fDM.adoquery1.sql.add('From Zilci as z, Kvart AS K, Dom AS D'); fDM.adoquery1.sql.add('where ((Z.FIOHost LIKE '+#39+'%'+edit1.text+'%'+#39') OR (D.GOD LIKE '+#39+'%'+edit1.text+'%'+#39') OR (D.Comment LIKE '+#39+'%'+edit1.text+'%'+#39') OR (Z.Pasport LIKE '+#39+'%'+edit1.text+'%'+#39')) AND Z.Flat=K.Flat AND Z.Address=K.Address And K.Address=D.Address'); С нижней таблицей все отлично, из всех жильцов отображается только Вася. Но, в других таблицах отображаются все дома и все квартиры. Решил проблему, заменив тейбл1 и тейбл2 на два квери и в каждый кидал одинаковый запрос, меняя только имя таблицы в селекте, но этот способ, судя по-всему не самый правильный. ![]() ![]() P.S. 1.Засунуть все таблицы в один грид не вариант - он получится километровой длины. 2.В поиске участвуют также memo поля. Последний раз редактировалось gjtrd, 29.10.2010 в 15:27. |
#2
|
||||
|
||||
![]() А ты соединил таблицы
Дом с Квартирой Квартиру с жильцами??? Нет ничего не возможного. Вопрос только во времени... |
#3
|
|||
|
|||
![]() В датамодуле, на вкладке Diagramm выставлены связи. Dom - главная таблица, Kvart - зависимая. Zilci зависит от Kvart. В аксесе связи не выставлял. Это может помочь?
|
#4
|
|||
|
|||
![]() на сколько я понимаю Вам надо построить "представление" или "вьюшку" в Аксцессе (или в самом делфи сделать объединяющий запрос) где нужно связать таблицы домов квартир и жильцов в один запрос что-то вроде
... select d.Dom_Name, k.Kvart_Name, z.Zilets from Zilets z left outer join kvart on z.kvart_id = k.kvart_Id left outer join Dom on z.Dom_id = d.Dom_Id where ... ну и даже условие с Вашими условиями "LIKE" Последний раз редактировалось birrrma, 30.10.2010 в 00:48. |
#5
|
|||
|
|||
![]() Я не силен в терминологии.
![]() |
#6
|
|||
|
|||
![]() Мм... А апать темы тут можно?
![]() |