MS Access: попытка выполнить DSum() для нескольких полей в форме, но она не будет фильтроваться по критериям
Я пытаюсь создать форму, которая берет суммы из определенных полей и отображает ее рядом с соответствующим именем поля. Я приложил фотографии этого в форме таблицы данных (как она отображается) и в форме дизайна.
Более подробно, элементы описания слева - это "поля" (которые теперь я буду называть "тегами" и будут перечислены в других таблицах в столбце " Связанные позиции предложений"). Я в основном пометил несколько других элементов в таблицах и запросах в приложении Access. Я пытаюсь собрать все элементы с одинаковыми тегами / полями и добавить суммарные единицы MH (человеко-часов), связанные с этими элементами.
Код, который я имею во втором текстовом поле на втором изображении:
=DSum("[Total MH]","qry-PipingHandleMH","[Associated Bid Item]=[Text_BidItem].Value")
где Total MH - это то, что я суммирую, qry-PipingHandleMH - это запрос, из которого я извлекаю, а Text_BidItem - первое текстовое поле во втором изображении. Я хочу суммировать только общий MH, в котором сопоставленный элемент ставки (столбец в других таблицах, где перечислены теги) совпадает с Text_BidItem.
ТЕПЕРЬ ПРОБЛЕМА: Несколько элементов в других таблицах и запросах уже помечены каждым из тегов, показанных на первом изображении. Каждое из этих описаний / тегов на первом изображении должно иметь общий MH, связанный с ним. Приведенный выше код SQL не разделяет итоговые значения в соответствующие строки, как показано на первом изображении. Вот более длинная версия кода:
=DSum("[Total MH]","qry-PipingHandleMH","[Associated Bid Item]=[Text_BidItem].Value")+DSum("[Total MH]","qry-PipingMakeupMH","[Associated Bid Item]=[Text_BidItem].Value")+DSum("[Total MH]","qry-PipingValvesMH","[Associated Bid Item]=[Text_BidItem].Value")+DSum("[Total MH]","qry-PipingWeldingMH","[Associated Bid Item]=[Text_BidItem].Value")+DSum("[Total MH]","qry-CoatingAGMH","[Associated Bid Item]=[Text_BidItem].Value")+DSum("[Total MH]","qry-CoatingUGMH","[Associated Bid Item]=[Text_BidItem].Value")
В основном один и тот же код применяется к разным таблицам, но добавляется вместе. Это то, что на самом деле во втором текстовом поле на втором изображении в настоящее время. Как вы можете видеть на первом изображении, все они применяются к строке "Large Bore Piping 2" и выше. Почему не суммирование общего MH, разделяющего на соответствующие строки? DSum() работает, но фильтрует и разделяет просто все неправильно.
1 ответ
Необходимо объединить переменные параметры. Ссылка на Text_BidItem является переменным параметром.
=DSum("[Total MH]","qry-PipingHandleMH","[Associated Bid Item]=" & [Text_BidItem])
Если [Associated Bid Item] является текстовым типом, тогда понадобятся разделители апострофов:
=DSum("[Total MH]","qry-PipingHandleMH","[Associated Bid Item]='" & [Text_BidItem] & "'")
Не указывайте пробелы или знаки препинания / специальные символы (только подчеркивание) в соглашении об именах.