Как организовать объединение полей с "?", если количество объединяемых полей меняется

Andrey-C
Дата: 11.01.2016 14:21:17
Добрый день, уважаемые форумчане.

Может не совсем корректно описал проблему в теме, попытаюсь объяснить, до чего я никак не могу додуматься.

Имеется форма, в которую будут заноситься данные. Которые, в свою очередь, надо вывести в отчет.
Задача 1: в отчете необходимо создать общее поле, чтобы данные были в строчку (я сделал с помощью вычисляемого поля)
Задача 2: к данным должны быть добавлены комментарии, запятые, в т.ч. названия соответствующих полей (я добавил с помощью кавычек " ")
ПРОБЛЕМА: не всегда все поля будут заполняться, т.е. то, что в кавычках останется в отчете

Я создал пример на основе моего проекта, в отчете видно, что у меня не вышло.

Каким образом мне вообще можно реализовать эту задачу?
Akina
Дата: 11.01.2016 14:33:32
Используйте функцию IIF()
Andrey-C
Дата: 11.01.2016 14:41:38
Я так понимаю, кроме IFF(), какие-то еще операторы нужны. Но я в акцессе программировать вообще пока не умею.
Не могли бы мне помочь полностью выражение написать?
Akina
Дата: 11.01.2016 14:56:34
Ну типа
SELECT IIF(IsNull([Время]);"";"время " & CStr([Время] & " мин.,")) &
       IIF(IsNull([Масса]);"";"масса " & CStr([Масса] & " кг.,")) &
       IIF(IsNull([Расстояние]);"";"расстояние " & CStr([Расстояние] & " км.")) AS [Данные]
...
Анатолий ( Киев )
Дата: 11.01.2016 18:05:30
1. При конкатенации можно использовать символы "&" и "+" (поведение разное).
2. При использовании "+" участие Null в одном из элементов возвращается Null.
3. При использовании "+" нельзя использовать число в качестве элемента, но можно преобразовать число в строку функцией Str.
Например:
?"Время"+ Str(12) + " мин." & ", масса" + Str(5) + " кг." & ", расстояние" + Str(2) + " км."
Время 12 мин., масса 5 кг., расстояние 2 км.
?"Время"+ Str(12) + " мин." & ", масса" + Str(Null) + " кг." & ", расстояние" + Str(2) + " км."
Время 12 мин., расстояние 2 км.
?"Время"+ Str(12) + " мин." & ", масса" + Str(5) + " кг." & ", расстояние" + Str(Null) + " км."
Время 12 мин., масса 5 кг.
?"Время"+ Str(12) + " мин." & ", масса" + Str(Null) + " кг." & ", расстояние" + Str(Null) + " км."
Время 12 мин.
Andrey-C
Дата: 12.01.2016 12:25:36
Большое спасибо, помогли.
Все сделал, работает.