Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> фильтрация комбобокса по значению другого, связи один-ко-многим, поля с списком 
:(
    Опции темы
neosapient
Дата 15.5.2008, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 16.8.2006

Репутация: нет
Всего: 4



фильтрация комбобокса по значению другого
связи один-ко-многим, поля с списком


Добрый день.

Я новичок в MS Access, так что господа магистры - дайте разжеванный ответ, как решить проблему... над которой бьюсь уже полторы недели :(

Есть 3 таблицы: "Больницы - Отделения - Врач"

Пример в приложении
Вот схема иерархии связей таблиц
user posted image

Создал форму (Врач) для внесения врачей. В ней два поля со списком - Больницы и Отделения.

Список больниц определяться запросом,
Код

SELECT Больницы.ID, Больницы.Больница FROM Больницы; 


Список отделений в больнице определяться запросом,
Код

SELECT Отделения.ID, Отделения.БольницаID, Отделения.Отделение FROM Отделения WHERE (((Отделения.БольницаID)=Forms!Врач!БольницаID)); 


При каждой смене содержимого поля со списком "Больницы", выполняется обновление поля со списком "Отделения"
Код

Private Sub БольницаID_Change()
    ОтделенияID.Requery
End Sub



При добавлении нового драча:
1)  Если выбрать Отделение из списка Отделений, при неуказаной Больнице, то на автомате выбираться Больница.
Это надо запретить.
2)  Если выбрать Больницу, раскроется список доступный Отделений данной Больницу. Но выбрать Отделение мне не дадут, появится сообщение:
user posted image
" Текущее поле должно совпадать с ключем связи '?' в таблице со стороны 'один' соотношения 'один-ко-многим'. Введите на стороне 'один' запись с требуемым значением ключа связи, а затем создайте запись с тем же значением ключа в таблице на стороне 'только многие' "
КАК ОБОЙТИ ЭТО ПРЕДУПРЕЖДЕНИЕ!!! Ведь вполне логично, сначала выбрать Больницу, а затем Отделение в этой Больнице.

Помогите! Скорректируйте пример как надо и опишите что?, как? и почему? Вы это правили...

Заранее огромное спасибо !

P.S.
Расширяю исходник "Больницы - Отделения":
http://forum.vingrad.ru/topic-147160.html 

Это сообщение отредактировал(а) neosapient - 15.5.2008, 16:49

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  Doctor.rar 69,62 Kb
PM MAIL   Вверх
Akina
Дата 15.5.2008, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



См. аттач.

Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  1.zip 31,50 Kb


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
neosapient
Дата 16.5.2008, 02:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 16.8.2006

Репутация: нет
Всего: 4



 smile  работает

Цитата

См. аттач. 

Предельно разжевано  smile 
В чем некорректность моего подхода?


----
P.S.
Вопрос: после прочтения каких книжек/статей появляется правильное восприятия того, как нужно писать скрипты в Офисе/Акцессе ?

----
P.P.S.
За код-  спасибо
НО посмотрю завтра, а то спать уже пора.

Это сообщение отредактировал(а) neosapient - 16.5.2008, 02:58
PM MAIL   Вверх
Akina
Дата 16.5.2008, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(neosapient @  16.5.2008,  03:54 Найти цитируемый пост)
В чем некорректность моего подхода?

В идеологии. Сделана попытка внесения записей непосредственно в таблицу, пусть и через форму.
В моем же случае добавление выполняется свободной формой по нажатию кнопки. При этом выполняются все необходимые проверки (я сделал проверку на не-ввод фамилии), в случае проблем добавления не происходит и выводится сообщение об ошибке (сообщения могут быть разными в зависимости от того, какая проверка не пройдена), при удаче пользователь видит это явно (я сделал очистку поля фамилии).
Для просмотра введенных данных следует генерировать необходимые отчеты, введя сперва через форму условия отбора и сортировки, для корректировки - соответствующие формы.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
neosapient
Дата 29.5.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 16.8.2006

Репутация: нет
Всего: 4



То что было сделано - добовление строчки в таблицу.
Можешь привести пример формы для редактирования (корректировки) записей в таблице Врач ?..
(При перемещении от одной записи в таблице к другой не получается правильно отображать содержимое комбобоксов)
 smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.