1

Доступ говорит мне, что мое новое выражение является сложным. Раньше он работал, когда у нас было 10 уровней обслуживания, а сейчас у нас 19! Большой!

Мое выражение заключается в проверке СТОИМОСТИ наших услуг в поле [PriceCharged] и назначении соответствующих ЧАСОВ [Уровня обслуживания], когда я выполняю расчет, чтобы определить, сколько ВЫРАБОТКИ сделал каждый коллега, работая на клиента. В поле [EstimatedTime] хранятся фактические часы работы каждого коллеги.

[EstimatedTime]/[ServiceLevel]*[PriceCharged]

Отлично. Ниже приводится разбивка моего выражения СТОИМОСТЬ ЧАСОВ. Я поместил их в разные строки, чтобы их было легче читать - пожалуйста, не откладывайте на длину этого поста, в конце концов, это все та же информация.

Большое спасибо, Майк

Сервисный уровень: IIf([цена определена] = 100(СТОИМОСТЬ), 6(ЧАСЫ),

IIf([цена взимается] = 200 или [цена взимается] = 210,12,5,

IIF ([pricecharged] = 300,19,

IIf([цена взимается] = 400 или [цена взимается] = 410,25,

IIF ([pricecharged] = 500,31,

IIF ([pricecharged] = 600,37.5,

IIF ([pricecharged] = 700,43,

IIf([цена взимается] = 800 или [цена взимается] = 810,50,

IIF ([pricecharged] = 900,56,

IIF ([pricecharged] = 1000,62.5,

IIF ([pricecharged] = 1100,69,

IIf([цена взимается] = 1200 или [цена взимается] = 1210,75,

IIf([цена взимается] = 1300 или [цена взимается] = 1310 100,

IIF ([pricecharged] = 1400.125,

IIF ([pricecharged] = 1500.150,

IIF ([pricecharged] = 1600.175,

IIF ([pricecharged] = 1700.200,

IIF ([pricecharged] = 1800.225,

IIF ([pricecharged] = 1900,250,0)))))))))))))))))))

3 ответа3

1

Вы используете JET или Access? Если вы используете Access, создайте функцию VBA, которая использует Select Case и замените этот беспорядок кода на GetServiceLevel([PriceCharged]) AS ServiceLevel . Еще лучше написать функцию GetRevenue .

Также обновите до SQL Server.

0

Вы должны хранить значения, используемые в вашем выражении, в таблице. Таким образом, вы можете выполнить вычисления с помощью SQL-соединения и нескольких функций IIf(). И вы избежите сложных выражений (которые почти невозможно отладить) и зависимости от VBA (что сделает ваш запрос недоступным вне самого Access).

0

Где это выражение используется в форме, отчете или запросе?

Я думаю, что лучшим способом было бы создание глобальной функции и использование этой функции.

РЕДАКТИРОВАТЬ: кстати пробовал функцию переключения еще?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .