Количество строк в отчете о доступе мс с одинаковыми данными в 2 столбце - PullRequest
0 голосов
/ 19 февраля 2019
  1. перед выбором пользователя и при нажатии кнопки поиска будет отображаться отчет, основанный на выборе пользователя

  2. это отчет после нажатия кнопки поиска

Привет, эксперт.У меня проблема с поиском строк в отчете MS Access, которые имеют повторяющиеся данные по столбцам семейства и имени.Таким образом, если в первой строке столбца family = a и name = b, а в другой строке family = a и name = b, то у нас есть дублирующаяся строка независимо от других столбцов.Я хочу, чтобы он считал из отчета, а не из таблицы или запроса.Это связано с тем, что отчет будет отображаться на основе выбора пользователя в поле со списком и в списке из другой формы.и когда кнопка поиска была нажата, то он сгенерирует отчет.

Поэтому мне бы хотелось, чтобы в отчете была кнопка «Сводка», в которой можно было бы показать результат, как показано ниже (на основе формы отчета):

результат

и так далее ...

Я надеюсь, что смогу получить положительные отзывы от вас, ребята.Спасибо

Ниже приведен код, который я использовал для создания отчета:

Код для кнопки отчета

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Один из способов сделать это, не передавая более 1 параметра, - поместить сводку в подотчет и открыть этот подотчет одним нажатием кнопки.К сожалению, под-отчеты в нижних колонтитулах содержат ошибки, поэтому вы должны отфильтровать подотчет вручную.мы начинаем с аналогичной простой нормализованной базы данных: enter image description here Затем я добавил простую форму с множественным списком семейств и кнопкой для открытия отфильтрованного отчета.enter image description here

Private Sub cmdSearch_Click()
'Build Filter for report
Dim strFilter As String
Dim firstselectedfamily As Boolean
firstselectedfamily = True
For i = 0 To lstFamilys.ListCount - 1
If lstFamilys.Selected(i) = True Then
If firstselectedfamily = True Then
strFilter = "FamilyFK = " & lstFamilys.Column(0, i)
firstselectedfamily = False
Else
strFilter = strFilter & " OR FamilyFK = " & lstFamilys.Column(0, i)
End If
End If
Next i
'open report with filter
DoCmd.OpenReport "ExampleReport", acViewReport, "", strFilter, acNormal
End Sub

вот пример отчета с кнопкой для отображения сводки дубликатов: enter image description here

Кнопка показываетскрытый подотчет, основанный на запросе, который находит дубликаты: enter image description here

Запрос дубликатов выполняется путем группировки на основе семейства и теста, где как счетчик familyID, так и TestID равенминимум 1: enter image description here Обычно сводный отчет связывается с основным отчетом основными дочерними отношениями, но сводка выглядит естественной в нижнем колонтитуле основных отчетов, где подотчеты имеют ошибки и не фильтруются.правильно.Чтобы обойти ошибку, мы предоставляем код для фильтрации сводного отчета:

Private Sub cmdSummary_Click()
'filter summary form by using the main reports filter
Me.subfrmSummary.Report.Filter = Me.Filter
Me.subfrmSummary.Report.FilterOn = True
Me.subfrmSummary.Requery
'show/hide summary form
If Me.subfrmSummary.Report.Visible = False Then
Me.subfrmSummary.Report.Visible = True
Else
Me.subfrmSummary.Report.Visible = False
End If
End Sub

Опять же, чтобы обойти ошибку, не связывайте подчиненный отчет с основным отчетом с отношениями мастер / потомок.Вместо этого установите фильтр с кодом.

0 голосов
/ 19 февраля 2019

Вы можете создать агрегированный запрос на основе вашего запроса отчета и построить отчет на основе этого запроса.

SELECT Family, whichTest, Count(*) as ProductCount FROM Report_Query_Name GROUP BY Family, whichTest

Это принимает во внимание, что у вас есть запрос отчетасохраняется как отдельный запрос вне вашего отчета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...