Подстановочные знаки в выражении Access IIF - PullRequest
1 голос
/ 28 ноября 2011

Это должно быть просто. Я могу сделать это легко в Excel, но это не делает прыжок. У меня есть база данных, отслеживающая состояние парка грузовых автомобилей, включая различные услуги по плановому техническому обслуживанию. У меня есть запрос, который опрашивает все услуги (ежеквартально, полугодовые, годовые) и перечисляет сроки исполнения допусков для службы. Затем у меня есть отчет, в который я хочу включить некоторые основные итоги: сколько каждого вида транспортных средств находится в магазине, сколько должно быть за каждый вид обслуживания.

Проблема заключается в подсчете статуса. «В магазине» может быть выполнено на 10%, 50%, 90%. Поэтому я пытаюсь получить формулу count () для использования подстановочного знака. Этот не работает:

=Count(IIf([Status] = "In Shop*",1,0))

Эта звездочка дает мне каждый предмет в поле, пробелы или нет.

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Проблема в том, что вы не группируете по другому полю, поэтому Count () вернет все элементы.

Три способа решения этой проблемы:

  1. Создайте отдельное поле, в котором вы выполняете оператор IIF.Затем выполните Count () для этого поля, но включите это поле в предложение GroupBy.
  2. Создайте функцию VBA для инкапсуляции этой логики и вызовите функцию из элемента управления в отчете.
  3. Вместо использования Count () используйте Sum.

Пример:

Sum(IIf([Status] Like "in shop*",1,0))
1 голос
/ 28 ноября 2011

Как насчет этого ( РЕДАКТИРОВАТЬ : Я полагаю, что вы действительно хотите использовать здесь функцию SUM, а не COUNT):

=Sum(IIf(Left([Status], 7) = "In Shop", 1, 0)
...