Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проблема с представлением отчета
 
 автор: leozay   (09.02.2009 в 14:08)   личное сообщение
 
 

Подскажите в чем проблема:
есть БД, в ней таблицы - "объект", "проверки объекта", "арендатор", "проверки арендатора", таблицы связаны между собой;

ПОЧЕМУ в отчете при группировке (как написано выше) происходит дублирование записей, хотя запись на самом деле одна (и для объекта и для арендатора) или одна запись для объекта и несколько записей для арендатора или наоборот

Может ге какие свойства в запросах или в отчете?

  Ответить  
 
 автор: Анатолий (Киев)   (09.02.2009 в 14:40)   личное сообщение
 
 

Как связаны таблицы?
На каком запросе строится отчет?
Что означает фраза "в отчете при группировке (как написано выше)"? И где "выше"?

Судя по описанию у вас связь между таблицами многие-к-многим. Поэтому в запросе, построенном на двух таблицах записи и дублируются.

  Ответить  
 
 автор: leozay   (09.02.2009 в 14:59)   личное сообщение
 
 

1. таблицы "Объект и "проверки объекта" связаны по ID объекта, соответственно "Арендатор" и "проверки арендатора" иакже связаны по ID арендатора, в свою очередь "Объект" и "Арендатор" связаны по ID объекта
2. отчет строится на запросе включающем 2 таблицы - "объект" и "Проверки объекта", связь: один-ко-многим. Также в отчет встроен подОтчет, который аналогичен первому запросу, но уже построен на основе таблиц "Арендатор" и "проверки арендатора".
3. в отчете основные поля связаны с полями подОтчета по ID объекта

под "группировкой" понимаю - объект-проверки объекта-арендатор-провекри арендатора

  Ответить  
 
 автор: Анатолий (Киев)   (09.02.2009 в 17:49)   личное сообщение
 
 

Тогда объясните, что понимать под фразой "происходит дублирование записей".
Например, если у объекта было 5 проверок, а запрос возвращает имя объекта и дату проверки, то имя объекта повторится в пяти записях. Если вы об этом, то есть 2 варианта:
1. В свойстве поля "Не выводить повторы" указать ДА;
2. Создать в отчете группировку по имени объекта и перенести поля с описанием объекта в заголовок группы.

Если имеется ввиду другое, то выложите здесь пример БД.

  Ответить  
 
 автор: leozay   (09.02.2009 в 18:26)   личное сообщение
 
 

поясняю:
например: есть объект (запись в тбл.), у него есть проверка (запись в др.тбл.), причем запись об объекте ОДНА, а проверок (записей) может быть НЕСКОЛЬКО. С арендатором тоже самое : запись об арендаторе одна (в соотв.тбл.) проверок у арендатора может быть несколько (т.е. несколько записей также в соотв.тбл).
Кроме того 1 объект может быть "связан" с несколькими арендаторами.

ПРИ выполнении запроса ЯВНО ВИДНО что количество записей (что об объекте, что об арендаторе) - соответствует данным, хранящимся в таблицах, ОДНАКО в отчете появляется (чаще всего) ОДНА запись об объекте и несколько одинаковых записей об одном и том же арендаторе и его тех же самых проверках, что совсем не нужно.

Группировка именно такая, как вы предлагаете
В свойствах "не выводить повторы" уже юзал" - не помогает, в запросе - DISTINCT ROW - не помогает

  Ответить  
 
 автор: Анатолий (Киев)   (10.02.2009 в 11:45)   личное сообщение
 
 

Пример БД - в студию!

  Ответить  
 
 автор: leozay   (10.02.2009 в 18:45)   личное сообщение
 
 

Пример БД - здесь:
http://depositfiles.com/files/6qxxi9z1h

slil.ru - у меня почему-то не работает

  Ответить  
 
 автор: leozay   (12.02.2009 в 18:08)   личное сообщение
 
 

Доброго времени суток.
Помогите, подскажите... уже сломал голову, не могу понять в чем дело...

  Ответить  
 
 автор: Анатолий (Киев)   (13.02.2009 в 11:50)   личное сообщение
 
 

Ваш отчет строится на запросе "Объект"-"Проверки объекта" с группировкой по объекту.
В таком отчете область данных должна отражать данные о проверках и повторяется столько раз, сколько их было. Вместо этого вы в заголовке группы выводите данные о первой проверке, а в область данных вставили подчиненный отчет, который старательно повторяется, когда у объекта 2 и более проверки.

  Ответить  
 
 автор: leozay   (15.02.2009 в 15:38)   личное сообщение
 
 

СПАСИБО! Уже исправил этот косяк, сгруппировал как предложено и вынес в область данных сведения о проверках объекта.
Объекты показываются четко (причем я пока удалил из отчета подотчет по арендаторам).
КАК можно теперь впихнуть арендаторов? Может для начала создать сложный запрос на основе 4-х таблиц: объект & проверки + арендатор & проверки и потом в отчете по образу и подобию что есть сейчас сгруппировать объекты, их проверки и арендаторов с их проверками? Получится ли что нибудь?
Буду пробовать

  Ответить  
 
 автор: Анатолий (Киев)   (16.02.2009 в 11:44)   личное сообщение
 
 

Подчиненный отчет с арендаторами нужно перенести из области данных в примечание группы.
Не надо делать "сложный запрос на основе 4-х таблиц". Получится "Мухи-Котлеты", и толку не будет.

  Ответить  
 
 автор: leozay   (16.02.2009 в 13:29)   личное сообщение
 
 

КРАСОТИЩА! СПАСИБО ОГРОМНОЕ!

Все четко работает (в смысле отображается) - век живи век учись - дураком помрешь

  Ответить  
 
 автор: leozay   (18.02.2009 в 14:13)   личное сообщение
 
 

Теперь возникла новая загвоздка (ну чтоб уж совсем было красиво и корректно в отчете):
Как можно скрыть НЕКОТОРЫЕ повторяющиеся ПОЛЯ записей об объекте и об арендаторах, в случае если проверок несколько, например: нужно видеть что это за объект, его адрес и фио 1 раз, а проверки - сколько существует записей в подчиненной таблице, но тогда, естественно повторяются и другие поля.
Допустим поля "Объект", "Адрес" я через свойство "повторяющиеся записи" скрыл, но по другим полям - не вариант, потому что тогда не отображаются ФИО и др. нужные поля дальше по всей ГРУППЕ (НАПОМНЮ группировка происходит по ФИО, ID_Объект)
Может через функцию IIF(), например по полю ID объекта: вот так IIF(Count(ID)>1;[ФИО];"") , однако так не работает

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList