Мне нужна функция, которая будет автоматически суммироваться в столбцах с текущими месячными месяцами.Кумулятивная сумма FY на день в VBA
SQL, для запроса выглядит следующим образом:
SELECT "TBD" AS CATEGORY, tbl_SP.SYSTEM, tbl_SP.T3_UNIT AS ORG, tbl_SP.T1_UNIT AS Tier1_Unit, tbl_SP.UNIT_STAFF AS Tier2_Unit, tbl_SP.T3_UNIT AS Tier3_Unit, tbl_SP.OCT_O AS OCT, tbl_SP.NOV_O AS NOV, tbl_SP.DEC_O AS [DEC], tbl_SP.JAN_O AS JAN, tbl_SP.FEB_O AS FEB, tbl_SP.MAR_O AS MAR, tbl_SP.APR_O AS APR, tbl_SP.MAY_O AS MAY, tbl_SP.JUN_O AS JUN, tbl_SP.JUL_O AS JUL, tbl_SP.AUG_O AS AUG, tbl_SP.SEP_C AS SEP, Current_M([OCT_O],[NOV_O],[DEC_O],[JAN_O],[FEB_O],[MAR_O],[APR_O],[MAY_O],[JUN_O],[JUL_O],[AUG_O],[SEP_O]) AS Current_Month_SP, AcctType([MDEP],[T3_UNIT]) AS Acct_Type
FROM tbl_SP;
Например, это январь, поэтому я хочу, чтобы просуммировать эти столбцы
[OCT] + [NOV] + [DEC] + [JAN]
Чтобы проверить это, я попытался оклейки это с псевдоним
Current_YTD_value: [OCT] + [NOV] + [DEC] + [JAN]
Это работает.
Так почему же не работает, когда я использую его в функции? (я также попробовал его с типом как 'currency'
за каждый месяц, но я получаю #Error!)
я прокомментировал другие попытки, но оставил относительный один показ.
Public Function Current_M( lJan As Long, lFeb As Long, lMar As Long, _
lApr As Long, lMay As Long, lJun As Long, _
lJul As Long, lAug As Long, lSep As Long, _
lOct As Long, lNov As Long, lDec As Long) As Currency
Dim dtToday As Date
dtToday = Now()
Select Case Month(dtToday)
Case 1
Current_M = Nz(lOct, 0) + Nz(lNov, 0) + Nz(lDec, 0) + Nz(lJan, 0)
Case 2
Current_M = Nz(lOct, 0) + Nz(lNov, 0) + Nz(lDec, 0) + Nz(lJan, 0) + Nz(lJan, 0)
End Select
End Function
Не могли бы вы показать запрос, в котором эта функция используется, пожалуйста? – PaulFrancis
Дважды проверьте порядок полей, которые вы передаете функции, когда вы вызываете ее в запросе. Например, запрос дает функцию 'OCT_O' в качестве первого параметра ...' Current_M ([OCT_O] '. Однако первый параметр funtion имеет имя * lJan *. Это говорит о том, что поля могут не отображаться на правильные параметры. Я не думаю, что это причина ошибки, которую вы пытаетесь решить сейчас. – HansUp
Спасибо.Я понял, что после того, как кто-то отредактировал формат моего кода, который первоначально начинался с Case 10 и закончился Case 9. Я предполагаю, что он был отредактирован для визуальной эффективности. Но я знаю об этом. – monty327