Доступ: отображение элемента управления «Текстовое поле» в подотчете при отсутствии данных - PullRequest
0 голосов
/ 07 апреля 2011

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

‘Code in sub-report
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

If Me.Report.HasData Then
    Me.Label43.Visible = True
    Me.txtNotEntered.Visible = False
Else
    Me.Label43.Visible = True
    Me.txtNotEntered.Visible = True
End If

End Sub

Он отлично работает в подотчете при запуске в одиночку.Когда я запускаю основной отчет, он не срабатывает.

Я добавил тот же код в основной отчет, чтобы посмотреть, будет ли он работать.Он проходит по строкам кода, но все еще не видит элемент управления текстовым полем txtNotEntered.

‘Code in main report
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

If Me!rptResults_Comments.Report.HasData Then
    Me!rptResults_Comments.Report.Label43.Visible = True
    Me!rptResults_Comments.Report.txtNotEntered.Visible = False
Else
    Me!rptResults_Comments.Visible = True
    Me!rptResults_Comments.Report.Label43.Visible = True
    Me!rptResults_Comments.Report.txtNotEntered.Visible = True
End If

End sub

Я использую MS Access 2003.

Ответы [ 2 ]

3 голосов
/ 07 апреля 2011

В дополнение к ответу от mwolfe02 я бы предложил вместо использования метки и кода VB использовать текстовое поле со следующим выражением:

=IIf([HasData],"","No data found")

Я использую это во всех своих отчетах.Выражение типа

=IIf([rptResults_Comments].[Report].[HasData],","No data found")

также должно работать.Я не проверял последнее выражение, поэтому я не уверен, нужен ли [Отчет] или нет.

3 голосов
/ 07 апреля 2011

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

Один из способов - переместить элемент управления txtNotEntered в основной отчет и поместить его «под» элемент управления подчиненного отчета (используя команду «Отправить назад»). Затем установите свойство Can Shrink вашего подчиненного элемента управления на True.

Затем, когда в подотчете есть данные, вы увидите подотчет и он покроет элемент управления txtNotEntered. Когда данных нет, подотчет сойдет на нет, и вы увидите элемент управления txtNotEntered.

Одним из преимуществ этого подхода является то, что он не требует кода. Просто оставьте для свойства txtNotEntered Visible значение True. Сокращение подотчета поможет раскрыть его при необходимости.

...