Access 2007 говорит мне, что мое новое выражение слишком сложное. Раньше он работал, когда у нас было 10 уровней обслуживания, а сейчас у нас 19! Большой! Я задал этот вопрос в SuperUser , и кто-то предложил мне попробовать его здесь. Я предлагаю включить его в функцию, но я не уверен, с чего начать и как будет выглядеть функция.
Мое выражение проверяет стоимость наших услуг в поле [PriceCharged], а затем назначает соответствующие ЧАСЫ [Уровень обслуживания], когда я выполняю расчет, чтобы определить, сколько ВЫРАБОТКИ сделал каждый коллега, работая на клиента. В поле [EstimatedTime] хранится фактическое количество часов работы каждого коллеги.
[EstimatedTime]/[ServiceLevel]*[PriceCharged]
Ниже приведено выражение моего СТОИМОСТИ к ЧАСАМ. Я поместил их в разные строки, чтобы их было легче читать - пожалуйста, не откладывайте на длину этого поста, в конце концов, это все та же информация.
Большое спасибо, Майк
ServiceLevel: IIf([pricecharged]=100(COST),6(HOURS),
IIf([pricecharged]=200 Or [pricecharged]=210,12.5,
IIf([pricecharged]=300,19,
IIf([pricecharged]=400 Or [pricecharged]=410,25,
IIf([pricecharged]=500,31,
IIf([pricecharged]=600,37.5,
IIf([pricecharged]=700,43,
IIf([pricecharged]=800 Or [pricecharged]=810,50,
IIf([pricecharged]=900,56,
IIf([pricecharged]=1000,62.5,
IIf([pricecharged]=1100,69,
IIf([pricecharged]=1200 Or [pricecharged]=1210,75,
IIf([pricecharged]=1300 Or [pricecharged]=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)))))))))))))))))))
ОБНОВЛЕНИЕ (16/04/10 14:46 GMT)
Я создал новую таблицу, как рекомендовано ниже. Теперь нужно удалить мое выражение и заставить исходный запрос SELECT использовать новую таблицу. Однако я не совсем понимаю, как это делается.
Используя пример DLookUP, я представляю себе, что сохраняю исходный запрос, в котором у меня есть поле PRICECHARGED, включаю новое поле DLookUp, которое использует приведенный ниже пример для ссылки на PRICECHARGED, и заполняю строки соответствующим SERVICELEVEL (часы).
Я запутался в этом моменте, потому что в моем исходном запросе SELECT все вычисления происходили в этом запросе (выражения после выражения), что означало, что конечным результатом моего запроса был список коллег с HOURS и REVENUE (Стоимость ) против их имени. У меня такое ощущение, что мне нужен еще один запрос в середине для управления процессом DlookUp.
`Любые направления или дорожная карта очень ценятся.
Окончательное обновление. Добавил другую таблицу, как упоминалось выше, создал соответствующие ссылки из новой таблицы на поле в «fixed» таблице. Вуаля. Это сработало, и я не делал ничего, что могло привести к сбою или предупреждению об ошибке. Это было проще, чем я думал. Я не понимаю, почему я не справился с этим раньше.
Еще раз спасибо, Майк