Access 2002

Два интересных приема


В приведенной ниже функции adhlsSection  демонстрируется один из возможных методов: делается попытка извлечь высоту требуемого раздела. Если данная попытка не вызывает ошибку выполнения, то раздел существует. Передайте в эту функцию ссылку на интересующую вас форму или отчет вместе с номером проверяемого раздела (или соответствующей константой). Функция вернет значение True, если раздел существует, и False в противном случае.

В этой функции реализованы два интересных приема.

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

If TypeOf obj Is Form Or TypeOf obj Is Report Then

О Вторым параметром функции является переменная типа acSection. Этот перечисляемый тип включает константы, представляющие все возможные разделы отчетов и форм (acHeader, acFooter и т. д. — за полным перечнем обращайтесь к Object Browser). Благодаря тому что мы использовали именно этот тип, вводя обращение к нашей функции в редакторе Visual Basic, вы сможете воспользоваться его функцией IntelliSence и выбрать значение параметра из

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

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

Комментарии закрыты