Можно ли манипулировать текстовыми метками в заголовках разделов отчета с помощью VBA? (MS-Access) - PullRequest
0 голосов
/ 04 сентября 2018

Возможный глупый вопрос здесь ...

Но возможно ли в MS-Access программно манипулировать текстом надписей надписей таким образом, чтобы в заголовке каждого раздела отчета появлялись разные надписи?

Т.е., представление конструктора показывает объект текстовой метки в нулевом заголовке GroupLevel с заголовком по умолчанию "blah" .... но после выполнения подпрограммы Report_Load () фактический отображаемый текст отличается для каждого раздел в отчете? Скажем, просто «Раздел 1», «Раздел 2», «Раздел 3» и т. Д.?

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

Я понимаю, что есть другие / лучшие способы сделать то же самое ... но такая возможность возможна, особенно с использованием объектов VBA и Label (на данный момент это внешнее ограничение, которое я не могу изменить).

РЕДАКТИРОВАТЬ: https://drive.google.com/open?id=1PID58qMyp_rNxv9tsQk38-Co9sDOFgzY

РЕДАКТИРОВАТЬ 2: Оригинальный пост специально обозначил ЭТИКЕТКИ в качестве единственного объекта для приемлемого решения. Изменить, чтобы включить метки и текстовые поля ... что, конечно, делает вопрос почти тривиальным. Извиняюсь перед @peakpeak за отсутствие ясности!

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

На самом деле, спасибо за вашу помощь, но я нашел кое-что, что выглядит как достойный обходной путь в рамках ограничений, которые я описал выше. Строго говоря, это не удовлетворяет условиям вопроса, который был задан изначально (-1 для меня из-за отсутствия ясности и извинений перед @peakpeak, который, по общему признанию, имел практически нулевой шанс ответить на этот вопрос, как он задан), но это близко достаточно, чтобы это решило мою непосредственную проблему:

Измените объект, который должен содержать мой динамический текст, с метки на текстовое поле (дух!), Оставьте все настройки форматирования и т. Д. Такими же, чтобы графическое представление не изменилось.

Установите для источника управления нового текстового поля открытую функцию, где аргументом функции является имя соответствующего поля в базовом запросе («tName» в связанном примере), чтобы динамическое текстовое поле имеет источник управления "= GetText ([tName])", а функция GetText () определена в соответствующем модуле для отчета и определяет нужный текст, например:

GetText(tName as String) as string

SELECT Case tName

Case "Albert"

GetText = "Section 1"

Case "Barry"

GetText = "Section 2"

Case Else

GetText = "Section 3"

'and so on

End Select

`

End Function

0 голосов
/ 04 сентября 2018

Вы можете изменить заголовок с помощью

Me.<name of header>.Caption = "whatever"

Выберите Свойства для заголовка в режиме конструктора и найдите и / или измените свойство Имя. Me предполагает, что код VBA находится под объектами класса Microsoft Access в форме, которой вы хотите манипулировать.

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