Access 2002

Маленькая функция из модуля отчета


Похоже, что всю работу в данном случае выполняет функция FixLine, и так оно и есть. Эта маленькая функция из модуля отчета rptSuppl i ersLabel sGood не делает ничего особенно сложного, но ее роль исключительно важна.

Private Function FixLineCvarValue As Variant) As Variant

Если varValue имеет значение Null. FixLine возвращает Null.

В противном случае она возвращает переданное ей значение.

дополненное символами Cr/Lf.

FixLine – varValue + vbCrLf End Function

Данная функция принимает значение типа Variant. Если это Null, функция возвращает его обратно, и это означает, что соответствующую строку нужно вообще убрать. В противном случае функция возвращает полученный ею текст, в конец которого добавлены символы возврата каретки и перевода строки. Работа функции основана на том факте, что оператор + всегда возвращает Null, если один из его операндов имеет такое же значение. (Это свойство оператора + иногда называют Null-пропагацией — NuII-propagation.) Таким образом, если передать нашей функции Null, то и на выходе тоже будет Null.

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

Описанную технологию можно использовать каждый раз, когда вы хотите избежать появления пустых строк на месте полей, имеющих значение Nul 1.

Использование оператора + для получения пустых значений

Оператор +, как и оператор &, может использоваться и для объединения строковых значений. Однако у него есть одна интересная особенность: если один из его операндов имеет значение Null, оператор также возвращает Null. Эта его особенность еще не раз может сослужить вам хорошую службу. Вот типичный пример.

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