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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Как вывести записи таблицы в одной строке запроса (2000)
 
 автор: pasat   (14.07.2008 в 11:51)   личное сообщение
27 Кб.
 
 

Всем привет
Как вывести записи таблицы в одной строке запроса, вроде сделал все как написано здесь
http://hiprog.com/index.php?option=com_content&task=view&id=334&Itemid=35
но не один из вариантов не выполняется ПОЧЕМУ
См. прилож.
Заранее спасибо

  Ответить  
 
 автор: osmor   (14.07.2008 в 12:40)   личное сообщение
 
 

1. везде входная таблица (запрос) должны быть отсортированы по ID (т.е. по полю по которому происходит группировка)
2. начиная (кажется с 2002) IsEmpty в запросах стало работать как-то по другому
из за этого для того что бы работало нужно в запросах

WHERE IsEmpty(.....

Заменить на

WHERE not IsEmpty(UnionStr2())


Не совсем понятно, что из данной таблицы должно суммироваться если все ID разные

  Ответить  
 
 автор: Pasat   (14.07.2008 в 13:29)   личное сообщение
10 Кб.
 
 

Попробовал разные варианты - не получается.
Например если взять 4-й вариант, что в нем нужно изменить. Вроде все сделано как написано здесь
http://hiprog.com/index.php?option=com_content&task=view&id=334&Itemid=35
(Случай 4. Tab1 таблица или запрос. Никаких дополнительных предположений нет)
У меня (акссес 2000)
Если можно покажите на примере

  Ответить  
 
 автор: palarm   (14.07.2008 в 14:46)   личное сообщение
 
 

Можно перекрестным запросом собрать строки в итоги или сделать функцию, которая пробегается по строкам таблицы и собирает их в одну стороку (тоже типа итога). Потом вызвать ее в запросе (или вставить в основной запрос перекрестный, из которого вытянуть сборную строку)

  Ответить  
 
 автор: osmor   (14.07.2008 в 15:28)   личное сообщение
 
 

в запросе tabUnion4
вместо

IsEmpty(UnionStr2())

написать

not IsEmpty(UnionStr2())

т.е. полный текст запроса будет таким

SELECT Tab1SortNum.ID, Last(UnionStr2([ID],[Fam])) AS FamUnion
FROM Tab1SortNum
WHERE not IsEmpty(UnionStr2())
GROUP BY Tab1SortNum.ID;

  Ответить  
 
 автор: Pasat   (14.07.2008 в 16:00)   личное сообщение
10 Кб.
 
 

Большое спасибо
Но почему то не работает. Открывается та же таблица
Прикладываю файл
У меня (акссес 2000) может там надо чего-то по другому

  Ответить  
 
 автор: osmor   (14.07.2008 в 18:35)   личное сообщение
 
 

а что Вы хотите получить?
у вас стоит группировка по ID это значит, что поля Fam из разных строк с одинаковым ID должны объедениться в одно поле.
ПОскольку у Вас все ID уникальны, то и объединять нечего.

  Ответить  
 
 автор: Pasat   (14.07.2008 в 18:46)   личное сообщение
 
 

Ура вроде получилось
Огромное спасибо

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