Я создаю отчет для отображения данных о клиентах с несколькими подотчетами для отображения различных демографических данных, разбитых по финансовым кварталам. Например, мой подчиненный отчет на основном языке клиентов имеет элемент управления со списком для создания строк в разделе сведений; элемент управления привязан к моей таблице выбора языка (я не уверен, что это актуально, но я использовал AutoNumber для первичного ключа выбора языка вместо имени самого языка в качестве ключа. Я могу изменить это, хотя если требуется). Для столбцов я создал метку для каждого финансового квартала. То, что я пытаюсь сделать, это для каждого выбора языка в этом связанном элементе управления, мне нужно, чтобы он увидел, какие клиенты говорят на этом языке, чтобы увидеть, когда они были впервые обслужены, чтобы разбить их на соответствующий финансовый квартал, и отобразить счетчик в соответствующие коробки.
В других подотчетах, таких как пол новых клиентов, с разбивкой по финансовым кварталам это было легко Есть только M / F, поэтому нет необходимости расширять его, поэтому я просто создал две строки с метками / прямоугольниками и использовал некоторый VBA для ссылки на запрос, который собрал мои данные клиента. Запрос выглядит, чтобы увидеть, когда они были впервые обработаны, и я написал функцию, возвращающую, к какому финансовому кварталу они относятся (Внимание: любительское кодирование впереди = D)
Public Function FiscalQuarter(InputDate As Date) As Integer
Dim ReportMonth As Integer
Dim ReportDay As Integer
Dim ReportYear As Integer
Dim FiscalYear As Integer
'''!!! Break up Current Date !!!'''
ReportMonth = Month(InputDate)
ReportDay = Day(InputDate)
ReportYear = Year(InputDate)
' Quarter 1
If ReportMonth = "9" Then
FiscalQuarter = 1
FiscalYear = ReportYear + 1
End If
If ReportMonth = "10" Then
FiscalQuarter = 1
FiscalYear = ReportYear + 1
End If
If ReportMonth = "11" Then
FiscalQuarter = 1
FiscalYear = ReportYear + 1
End If
' Quarter 2
If ReportMonth = "12" Then
FiscalQuarter = 2
FiscalYear = ReportYear + 1
End If
If ReportMonth = "1" Then
FiscalQuarter = 2
FiscalYear = ReportYear
End If
If ReportMonth = "2" Then
FiscalQuarter = 2
FiscalYear = ReportYear
End If
' Quarter 3
If ReportMonth = "3" Then
FiscalQuarter = 3
FiscalYear = ReportYear
End If
If ReportMonth = "4" Then
FiscalQuarter = 3
FiscalYear = ReportYear
End If
If ReportMonth = "5" Then
FiscalQuarter = 3
FiscalYear = ReportYear
End If
' Quarter 4
If ReportMonth = "6" Then
FiscalQuarter = 4
FiscalYear = ReportYear
End If
If ReportMonth = "7" Then
FiscalQuarter = 4
FiscalYear = ReportYear
End If
If ReportMonth = "8" Then
FiscalQuarter = 4
FiscalYear = ReportYear
End If
End Function
Затем в отчете ClientGender я использовал следующий код:
MaleFirstQ = DCount("MinOfEventDate", "qryQRChildDemographics", "FiscalQuarter([MinOfEventDate])=1 And [Gender]='M'")
MaleFirst.Caption = MaleFirstQ
Для каждого поля пола / квартала у меня есть фрагмент кода, похожего на приведенный выше, для назначения заголовка.
Итак, моя проблема в том, что у меня возникают проблемы со ссылками на значения в связанном элементе управления в отчете, чтобы использовать его в разбивке по финансовому кварталу. Я пытался использовать Dcount, похожий на тот, который я уже использовал, за исключением того, что я пытался использовать ссылку на связанный элемент управления в качестве критерия, и я продолжал получать различные ошибки времени выполнения, говоря, что я сделал ссылку на элемент управления или свойство, которое не есть.
Я признаю, что я в некотором роде новичок, и мне нравится самому разбираться, играя с этим, но я совершенно застрял. Я медленно перебирал книги по Microsoft Access 2010, Microsoft Access 2010 и книги Справочника по программированию Wrox Microsoft Access 2010 (только что начатый), но пока не нашел того, что мне нужно. У меня такое ощущение, что мой подход к этой задаче совершенно неправильный, поэтому, если кто-нибудь и укажет мне правильное направление в том, что я пропускаю, и какие инструменты я буду использовать, я буду очень признателен!
Я пробовал несколько разных способов, но все они похожи на это с небольшими изменениями во втором критерии:
LanguageFirst.Caption = DCount("PrimaryLanguage", "qryQRChildDemographics", "FiscalQuarter([MinOfEventDate])=1 AND Me!LanguageField")
Выдает ошибку времени выполнения 2471
Мне не нравится Me! LanguageField.
Я также попробовал это как второй критерий:
[PrimaryLanguage]=Me.Controls!LanguageField
Я подумал, так как я могу использовать функцию в качестве критерия, чтобы я тоже мог использовать значение поля, но я начинаю думать, что Dcount может даже не подходить для использования здесь.