Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2010, 15:54   #1
chinara
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 12
По умолчанию Фильтрация подчиненной таблицы

Здравствуйте, дорогие господа-программисты!

Не подскажете как можно отфильтровать подчиненную таблицу по выбранному внешнему ключу?

Т.е. у меня есть главная таблица Manufacturer, с именами производителей, и связанная с ней дочерняя таблица Comp_model.Связала я эти таблицы по полю ID.
На форме редактирования компьютеров,мне нужно реализовать следующее:
выбрала я Manufacturer для данного компа -> таблица Comp_model фильтруется сразу, и уже в выпадающем списке Model я вижу только модели данного производителя.

Если можно,то пожалуйста код пропишите.
chinara вне форума Ответить с цитированием
Старый 08.12.2010, 15:19   #2
chinara
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 12
По умолчанию

Почему-то мне никто не хочет ответить

Итак, код я написала...только вот он невполне корректно работает((((

На форме редактирования у меня есть два DBLookupComboBox-а: для Manufacturer и Model. На событие OnCloseUp первого DBLookupComboBox-а я пишу код:
PHP код:
procedure TComputerEditForm.DBLookupComboBox1CloseUp(SenderTObject);
var
str:string;
begin
if DBLookupComboBox1.Text<>'' then
begin
MainDM
.TComp_model.Filtered:=False;
str:=DBLookupComboBox1.Text;
if (
MainDM.TManufacturer.FieldByName('Manufacturer').AsString=str then
x
:=MainDM.TManufacturer.FieldByName('ID').AsInteger;
MainDM.TComp_model.Filtered:=true;
end
                                           
else
MainDM.TComp_model.Filtered:=False;
end
а на событие OnFilterRecord таблицы Comp_model пишу код:

PHP код:
procedure TMainDM.TComp_modelFilterRecord(DataSetTDataSet;
  var 
AcceptBoolean);
begin
  accept
:=MainDM.TComp_model.FieldByName('ID').AsInteger=x;
end
Так вот, первый раз фильтрация идет нормально, я выбираю определенного Manufacturer, и таблица Comp_model нормально фильтруется. Но уже когда при следующем добавлении новой записи я выбираю другого Manufacturer программа выдает ошибку о том, что в таблице Comp_model нет соответствующей записи. Мне кажется, что сброс фильтрации таблицы у меня некорректно идет....

Очень прошу, помогите найти ошибку.
chinara вне форума Ответить с цитированием
Старый 09.12.2010, 08:36   #3
chinara
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 12
По умолчанию

Ну почему никто не отвечает??(((((
chinara вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос в подчиненной форме Kvins Microsoft Office Access 1 30.09.2010 12:31
Обновление данных подчиненной формы из другой подчиненной формы smoky Microsoft Office Access 2 15.08.2009 15:28
доступ к данным подчиненной таблицы kopernik21187 БД в Delphi 5 21.08.2008 17:04