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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Внимание! Есть замечания модератора по теме: Название темы должно адекватно отражать суть решаемой задачи/проблемы
Старый 09.03.2013, 14:40   #1
Elsveir
Новичок
Джуниор
 
Регистрация: 09.03.2013
Сообщений: 2
По умолчанию выбрать cпециальность, только в том случае, если сданы предметы, необходимые для этой специальности

Дорогие форумчане мне преподаватель сказал реализовать следующие : студент может выбрать ту или иную специальность, только в том случае, если он сдавал предметы, необходимые для этой специальности.
Подскажите пожалуйста как можно это реализовать, буду очень благодарен .
Вложения
Тип файла: rar Абитурьент курсовая.rar (99.1 Кб, 13 просмотров)
Elsveir вне форума Ответить с цитированием
Старый 09.03.2013, 23:27   #2
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

Гнусный MSA2007...

1. Почему у Вас во всех формах связь между главной и подчинённой выполнены через свойства «Подчиненные поля» (LinkChildFields) и «Основные поля» (LinkMasterFields) [это - нормально], а при этом у каждой главной формы заполнено свойство «Источник строк» (RowSource)??? Это как понимать?
2. Я не понял, где именно Выэто хотите реализовать... Но вот запрос, который говорит кто может куда поступать (если я правильно понимаю Вашу структуру):

SELECT [аб-сп].Абитурьент, [специальность-предмет].[код специальности], Count([аб-сп].предмет) AS [Count-предмет]
FROM [специальность-предмет] INNER JOIN [аб-сп] ON [специальность-предмет].[код предмета] = [аб-сп].предмет
GROUP BY [аб-сп].Абитурьент, [специальность-предмет].[код специальности]
HAVING (((Count([аб-сп].предмет))=(SELECT Count([специальность-предмет_1].[код предмета]) AS Предметов FROM [специальность-предмет] AS [специальность-предмет_1] WHERE ((([специальность-предмет_1].[код специальности])=[специальность-предмет].[код специальности])) GROUP BY [специальность-предмет_1].[код специальности])))
ORDER BY [аб-сп].Абитурьент;
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 10.03.2013, 01:12   #3
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Elsveir.
скорее всего вопрос должен быть таким: "..как .. реализовать.." "..выбрать .. специальность, .. если .. сдавал все предметы, .. этой специальности.."?
Если речь о формировании списка доступных Специальностей после выбора Абитуриент, то он может быть сформирован
подобной SQL конструкцией:
Код:
PARAMETERS IA Long;
SELECT TW.[код специальности], TS.специальность
FROM специальность AS TS INNER JOIN [специальность-предмет] AS TW ON TS.[код спецальности] = TW.[код специальности]
GROUP BY TW.[код специальности], TS.специальность
HAVING (((Count(TW.[код предмета]))<=(SELECT Count(T1.предмет) 
               FROM [аб-сп] T1 RIGHT JOIN [специальность-предмет] T2 ON T1.предмет = T2.[код предмета]
              WHERE ((T2.[код специальности])=1) AND ((T1.Абитурьент) Is Not Null And (T1.Абитурьент)=[IA]))))
для привязки конструкции к форме, необходимо заменить параметр ссылкой на объект формы или его значением.

Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 10.03.2013, 06:03   #4
Elsveir
Новичок
Джуниор
 
Регистрация: 09.03.2013
Сообщений: 2
По умолчанию

Спасибо большое за подсказку,
Попытался реализовать в поле "специальность" подчиненной формы "абитурьент-специальность" выдает вот такую вот ошибку " Expected: indentifire"
можете пожалуйста подсказать что не так
вот код :Private Sub специальность_AfterUpdate(
SELECT TW.[код специальности],TS.специальность
FROM специальность AS TS INNER JOIN [специальность-предмет] AS TW ON TS.[код специальности] = TW.[код специальности]
GROUP BY TW.[код специальности], TS.специальность
HAVING (((Count(TW.[код предмета]))<=((SELECT Count(T1.предмет))
FROM [аб-сп] T1 RIGHT JOIN [специальность-предмет] T2 ON T1.предмет = T2.[код предмета]
WHERE ((T2.[код специальности])=1) AND ((T1.абитурьент) Is Not Null And (T1.абитурьент)=[IA]))))

End Sub
Изображения
Тип файла: jpg 2.jpg (35.7 Кб, 146 просмотров)
Тип файла: jpg 3.jpg (37.8 Кб, 148 просмотров)
Тип файла: jpg Безымянный.jpg (32.1 Кб, 148 просмотров)
Elsveir вне форума Ответить с цитированием
Старый 10.03.2013, 12:25   #5
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

И что, у Вас существующую часть приняли?
Интересно, а Вы по-русски хотя бы 2 слова можете написать без ошибок?
Вложения
Тип файла: rar Абитурьент курсовая.rar (34.5 Кб, 11 просмотров)
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 10.03.2013, 13:22   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

"..Спасибо большое за подсказку.." - Elsveir судя по сообщению Вы благодарите не за оказанную
помощь, а за уделённое Вам внимание т.к. результат нулевой.
поупражняйтесь с предложенным вариантом решения, думаю у Вас всё получится.
Успехов Вам.
Евгений.
Вложения
Тип файла: rar Абитурьент курсовая.rar (24.4 Кб, 11 просмотров)
Teslenko_EA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск файлов, ищет только если выбрать диск HellMercenariess Общие вопросы Delphi 6 26.09.2012 21:47
Выбрать необходимые строки volchek3 Microsoft Office Excel 4 28.08.2012 16:38
Функция ЕСЛИ подходит только для 1 условия, а если условий больше? Slavatron1984 Microsoft Office Excel 2 08.01.2012 22:07
Открыть текстовый файл в качестве параметра. В том случае, если имя текстового файла... Sayli Паскаль, Turbo Pascal, PascalABC.NET 9 11.10.2011 23:10
Вставка строки в том случае, если такой нету Mixasik SQL, базы данных 3 11.04.2010 19:00