![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 17.11.2015
Сообщений: 62
|
![]()
Добрый день,
Есть база данных на MS Access 2007 под названием "Учет книг на кафедрах". Внизу небольшое описание БД + Прикреплю саму БД и схему данных. Предметная область – база данных по книгам кафедры. Необходимо вести учет, – какие книги, по какой теме и где находятся. Разработанная структура данных имеет 7 таблиц. Ключевыми из них являются таблицы: «Книги», «Экземпляры», «Размещение книг по аудиториям». В таблице «Книги» хранятся данные о книгах, а именно – это название книги, жанр, год издания. Уникальным ключом выступает ISBN. В таблице «Экземпляры» каждой книге присваивается свой уникальный инвентарный номер, а так же в примечаниях указывается характерные черты книжного экземпляра, которому присваивается инвентарный номер, например, это может быть указание о каких-то характерных дефектах книги. Далее книги, с присвоенным инвентарным номером, распределяют по аудиториям кафедр с указанием даты поступления. Эта информация хранится в таблице «Размещение книг по аудиториям». Номер аудитории берется из таблицы «Помещения», где указано название аудитории, номер кафедры, к которой эта аудитория приписана, а также указывается ФИО ответственного за аудиторию и его номер телефона. Информация по кафедрам хранится также в отдельной таблице под названием «Кафедры», где указывается уникальный номер кафедры, её название, а также ФИО и номер телефона заведующего кафедрой. Две оставшиеся таблицы «Авторы» и «Авторы книг» хранят информацию об авторах, так как книги могут быть написаны совместно несколькими авторами, фамилии которых могут повторяться. Собственно задача состоит в следующем, в БД есть простая форма "1 экземпляр в помещении". Форма связана с таблицей "Размещение книг по аудиториям". Так вот нужно написать для неё макрос, чтобы соблюдалось проверка условия -> "В любом помещении КАЖДАЯ КНИГА должна быть в 1-м экземпляре." То есть, например, в этой форме человек пытается добавить новую запись с уникальным инвентарным номером в помещение, где уже есть экземпляр так же с уникальным инвентарным номером и оба экземпляра это одна и та же книга с уникальным ISBN (ключ). Соответственно в этом случае должно появляться сообщение, оповещающая о том что 1 экземпляр такой книги уже есть в этом помещении. А запись не должна добавляться в таблицу. Ну, а иначе всё ок. Вот прошу помощи. Так как человеку уже надо завтра показать результат. А я в БД не силён шибко. ![]() Пытался что-то придумать с командой DCount, но не выходит. Надеюсь кто-то откликнется и поможет. Хотя бы команды какие подсказать или на ход мыслей верный направить. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
1. строим ЗАПРОС (View)
1.1. начинаем(from ) с размещения книг 1.2. узнаем (присоединяем(inner join ) какие ЭКЗЕМПЛЯРЫ там есть 1.3. узнаем экземпляры каких КНИГИ 1.4. узнаем в каких ПОМЕЩЕНИЯ 1.5. РЕШАЕМ (выбираем(where ) нужное нам помещение и книгу 1.6. СЧИТАЕМ(count) сколько их там должно получиться что-то типа этого Код:
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не получается написать программу. | Sandra_Miomi | Visual C++ | 2 | 23.03.2012 23:08 |
Не получается написать код | hello19 | Visual C++ | 1 | 04.08.2011 13:52 |
не получается написать прогу | serga71 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 17.03.2011 05:44 |
Не получается использовать макрос GetStr(Assembler) | depocomp | Помощь студентам | 8 | 16.05.2009 15:12 |
Хочу написать макрос, не получается. Прошу помощи | kzld | Microsoft Office Excel | 8 | 14.04.2009 09:51 |