Здесь найдено решение здесь . Агент Windows настроен на использование контейнеров Windows, а не контейнеров Linux.
Вы можете использовать Заменить и старый трюк, чтобы построить выражение в вашем запросе:
NoCounts: (Len([Field1] & [Field2] & … & [FieldN]) - Len(Replace([Field1] & [Field2] & … & [FieldN]), "No", ""))) / Len("No")
Если бы это были поля типа Да / Нет со значениями -1/0, можно было бы построить вычисляемое поле, которое добавит все остальные поля.
SELECT tbl_CSRQA.*,
10-Abs(ClaimantAdded + DocsPhoneCall + InsdDriverVehInfo + LossInfo + TemplateCalNotes +
EmailtoLiab + ReserveScreen + InsNamePhone + Clerical + AdditionalSteps) AS TotNo
FROM tbl_CSRQA
WHERE CustomerServiceRep=[forms]![frm_CSRErrorTracking]![CSRNameCB]
AND ClaimDate Between #1/1/2019# And #1/31/2019#;
Поскольку это, очевидно, текстовые поля, одно выражение, вероятно, будет слишком длинным. Создайте вычисляемые поля с условным выражением для каждого поля, чтобы преобразовать их в 1 или 0, а затем укажите эти вычисленные поля в арифметическом выражении. В качестве альтернативы, создайте пользовательскую функцию VBA, которая будет возвращать количество No в каждой записи.
Теперь Sum или DSum вычисляемое поле TotNo.
Добавьте приведенную ниже функцию в стандартный модуль, затем в отчет =CountInstanceofNo()
Option Compare Text
Public Function CountInstanceofNo() As Long
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim fld As DAO.Field
Dim counter As Long
Set db = CurrentDb
Set rs = db.OpenRecordset("Select ClaimantAdded, DocsPhoneCall, InsdDriverVehInfo,LossInfo,TemplateCalNotes,EmailtoLiab, ReserveScreen, InsNamePhone, Clerical, AdditionalSteps from tbl_CSRQA Where CustomerServiceRep='" & [forms]![frm_CSRErrorTracking]![CSRNameCB] & "' AND ClaimDate Between #1/1/2019# And #1/31/2019#", dbOpenDynaset)
Do Until rs.EOF
For Each fld In rs.Fields
counter = counter + IIf(fld & "" = "No", 1, 0)
Next
rs.MoveNext
Loop
CountInstanceofNo = counter
rs.Close
Set rs = Nothing
Set db = Nothing
End Function
.