Исходя из моего опыта, запрос - лучший подход в Access. Формы и отчеты предназначены для подключения к запросам и таблицам для минимизации кода. Вы можете сделать этот проект с запросом, но в доступе у вас есть два подхода на основе запроса. Оба подхода используют вычисляемые переменные, но менее переносимый подход заключается в использовании встроенных функций Access и VBA. Чистый sql и, следовательно, более переносимый подход состоит в том, чтобы основывать вычисленные переменные на коррелированных sql подзапросах. В Access и, опять же, основываясь на опыте, подход access и vba-функций гораздо надежнее и проще в реализации, поэтому я покажу этот подход.
Сначала я внес некоторые изменения и некоторые предположения относительно структуры данных. :
Я разрешаю Access добавить первичный ключ с именем ProjectsTableID. Каждой записи нужен уникальный идентификатор. Тогда я предположил, что каждая переменная была либо числом, либо строкой. В частности, обратите внимание, что я ссылаюсь на значение KPI_Value как «NA». Вот как вы ссылаетесь на строку. Я также удалил /, поскольку я не хотел иметь дело с выходом из него. Также обобщенный вес, как будет видно. Вот запрос:
CountofNA: DCount("KPI_Value","Projects","ProjectID = " & [ProjectID] & " AND KPI_Value = 'NA'")
SumofNAWeight: DSum("Weight","Projects","ProjectID = " & [ProjectID] & " AND KPI_Value = 'NA'")
NewWeight: IIf([KPI_Value]='NA',0,[Weight]+[SumofNAWeight]/[CountofNA])
Настройте результат для вашей структуры данных: