![]() |
MS Access. Отчёт, базирующийся на запросе с отбором данных для вывода - как сделать?
Преамбула:
Есть MS Access база с 1 таблицей. Есть запрос по этой базе выбирающий следующие поля : ФИО и номера сертификатов. Всего 25 видов сертификатов, но не у каждого человека есть все, может быть 1 сертификат, а может быть 5 сертификатов. И есть отчёт, построенный на основании вышеуказанного запроса. Амбула: Необходимо выводить в отчёт ФИО и название сертификата, которого нету у данного человека, т.е. скрывать те сертификаты, которые он получил. Как я понимаю - нужно построчно просматривать запрос и проверять на наличие номера сертификата, если есть номер - скрывать поле с этим сертификатом в отчёте, но не знаю как это сделать. Прошу помощи. |
Darkvar, получается, что структура такая таблицы?
Код:
КОД Код:
1 Иванов Сер1 Код:
3 Петров Сер1 |
Код:
SELECT Т1.ФИО, Т2.Сертификат Код:
Петров Сер1 |
Цитата:
Код:
1 Иванов Сер1 Сер2 Код:
Петров Сер1 И ещё только что узнал, что у разных сертификатов может быть один и тот же номер/название. Например OD 123 ... И как можно с такими людьми работать... Выручайте, а то это тихий ужас какой-то |
Не понял, так у вас структура таблицы такая? :
Код:
Код |
Цитата:
Код:
Курс1Серт№ Код:
Фамилия Курс1Серт№ ... Курс14Серт№ |
Мда, задача усложнилась тем, что каждый сертификат в отдельном столбце, а Access либо выводит столбец, либо нет при создании запроса. Теоретически могу сделать запрос, который выведет результат примерно в таком виде:
Код:
Иванов Сер1-OD123, Сер2-OD121, Сер3-OD125 |
Цитата:
Таблицу эту нужно переделать, потому что в настоящее время она просто неработоспособна. Создаётся два столбца - ФИО и Сертификат - и объявляется первичный ключ на оба поля. |
Цитата:
1) ФИО 2) Перечисление сертификатов, которых нету у человека через запятую. Номера сертификатов даже и не нужны, достаточно просто наименования этого сертификата. To El Scorpio, Ну отдаю честь Вашему "званию" :"Спасибо, Кэп" :) . Базу, увы, переделать не могу ибо она уже полностью забита, созданы отчёты, запросы и пр. Как она до сих пор работала - загадка для всех. А человек, который "проектировал" базу - не имеет ни малейшего понятия о структуре БД. |
Цитата:
Создаем запрос, в котором пишем вот такой хитрый запрос: Код:
SELECT Таблица1.ФИО, Данный пример имеет таблицу (Таблица1), в которой есть 7 Столбцов: Код:
Код ФИО Сер1 Сер2 Сер3 Сер4 Сер5 Сер6 Сер7 На выходе получаем вот такой результат: Код:
ФИО "Сертификаты" El Scorpio, согласен, структура базы ужаснейшая, но, зачастую, увы, приходится работать и с такими вот ляпусами, куда ж деваться :) |
Delirium, гранд мерси за помощь.
Допилил немного запрос под свои нужды и вроде бы работает на достаточном уровне. P.S. Тему пока что не закрываю, ибо скоро появится ещё 1 вопрос по этой же базе :up |
Цитата:
|
El Scorpio, и снова вы немного неправы. А если эта база используется клиентским приложением, в котором жестко прописаны данные поля? Переписывать клиентскую часть? Довольно хлопотное дело, особенно, если нет исходника :)
|
Время: 23:10. |
Время: 23:10.
© OSzone.net 2001-