![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Добрый день!
Существует база, в которой есть множество таблиц. 2-е из них - таблицы Областей и Городов. Нужно что бы при выборе Области в 1-м ComboBox-е, в другом появлялись Города, соответствующие только этой области. В событии OnChange 1-го ComboBox-а пишу: Код:
procedure TFormPacient.OblastChange(Sender: TObject); var IDObl:Integer; begin IDOblast.itemIndex:=Oblast.ItemIndex; IDObl:=StrToInt(IDOblast.Text); PacientCity.active:=true; IDCity.clear; City.clear; if not PacientCity.isEmpty then begin PacientCity.First; repeat IDCity.items.add(PacientCity.fieldbyname('IdCity').asString); City.items.add(PacientCity.fieldbyname('NCity').asString); PacientCity.next; until PacientCity.eof; IDCity.itemindex:=0; City.itemindex:=0; PacientCity.active:=false; end; end; SQLQuery для выборки городов содержит: Код:
Select IDCity,IDOblast, NCity from City where IDOblast=IDObl order by NCity вот строчка Код:
where IDOblast=IDObl |
#2
|
||||
|
||||
![]() проблема решается без одной строчки кода, при условии если есть поле по которому можно связать две таблицы (один ко многим)!
Если есть то: 1. Связываешь эти таблицы 2. Добавляешь на форму DBLookupComboBox(вкладка Data controls) 3. в свойстве ListSources выбираешь соурс регионов, в listfild выбираешь поле названия региона, а в keyfild индексное поле. И вуоля, автоматика!!!! |
#3
|
||||
|
||||
![]() Именно - две таблицы, если на втором месте оставите запрос, то его связать не получится
|
#4
|
|||
|
|||
![]() Что-то я не совсем понял...
НАпрмиер у меня на форме 4 ComboBox-a. В 1 название Обалстей, во-втором их ID. В 3 - Названия городов, а в 4 - ID этих городов. Так вот нужно, что бы при выборе Области в 1 CB, для 3 CB сформировался (отфильровался) список городов по ID (из 2 CB). |
#5
|
|||
|
|||
![]() вам же уже ответил Pilot_Red, почитайте в инете про MasterSource и MasterFields у компонентов TTable (TQuery) или какие вы там используете компоненты для доступа к таблицам.
взялся из неоткуда, ничего не прошу, помогаю просто так ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя ![]() |
#6
|
|||
|
|||
![]() Сделал все, как сказал Pilot_Red, но чего-то не получилось. Получается у меня должны быть зависимость (фильтр) в таблице Города от ID Области. Соответственно должна быть произведена выборка по ID. А получается, что у компонента DBLookupComboBox нет связи с ComboBox-ом...
|