Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 АХТУНГ! Как обратиться к полю формы :)  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9898
В недрах унаследованного софта в ContolSource'е одного из контролов одного из отчетов увидел такую конструкцию:

= """ | Forms![Форма]![Поле] | """

Кавычек - по три штуки с каждой стороны. Конкатенация - через вертикальную черту.
И оно работает!! В 97-ом аксесе.
В контроле выводится содержимое поля формы, заключенное в кавычки. О как.

Немного пошаманил. Понял, что кавычки не важны.
В строке вида "трампампам |Forms![Форма]![Поле]| трампампам" кусок, обрамленный вертикальными черточками - заменяется на значение в указанном поле указанной формы/отчета

Обнаружилось все это при переходе на XP.
В XP - не работает. Вернее работает, но не так. Выводит строку as is.

Это глюк? Фича? Или это я америку открыл и на граблю наступил?
24 май 04, 14:19    [696652]     Ответить | Цитировать Сообщить модератору
 Re: АХТУНГ! Как обратиться к полю формы :)  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Про вертикальную черту помню следующее. Она включает в стринг части, которые вычисляются on the fly. Например:

"ABC|f(x)|DEF"

- это все равно, что

"ABC" & f(x) & "DEF"
24 май 04, 14:32    [696692]     Ответить | Цитировать Сообщить модератору
 Re: АХТУНГ! Как обратиться к полю формы :)  [new]
TriAxp
Guest
Из Help Access 97:
"Существующие приложения Microsoft Access поддерживают использование операторов вертикальной черты (| |) вместо открывающих и закрывающих пар символов прямых кавычек (") и операторов & (слияния строк), например:

"[КодТипа] = '|Forms![Товары]![КодТипа]|' "

Однако использовать символы вертикальной черты не рекомендуется, поскольку в некоторых обстоятельствах они могут давать непредсказуемые результаты."
24 май 04, 14:34    [696698]     Ответить | Цитировать Сообщить модератору
 Re: АХТУНГ! Как обратиться к полю формы :)  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9898
Ок. Понял. Значит это я америку открыл.

Хорошо, тогда такой вопрос. То, что оно в XP не работает - это нормально?

2 TriAxp
Слушай, а где это в хелпе написано? Можно раздел/подраздел указать? А то искал, искал... нифига не нашел...
24 май 04, 14:41    [696719]     Ответить | Цитировать Сообщить модератору
 Re: АХТУНГ! Как обратиться к полю формы :)  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
По символу & можно выйти на:

Use values in expressions

...

Existing Microsoft Access applications may use the vertical bar operators (| |) in place of an opening and closing combination of double quotation marks and & (concatenation) operators, as follows:
"[CategoryID] = '|Forms![Products]![CategoryID]|' "
However, the use of vertical bars is not recommended because they can produce unexpected results in some circumstances.
24 май 04, 14:44    [696732]     Ответить | Цитировать Сообщить модератору
 Re: АХТУНГ! Как обратиться к полю формы :)  [new]
TriAxp
Guest
Я нашел через поиск по символу |
:-)
- где-то в первом десятке результатов попалось.
Да, именно там: "Создание выражений - Использование значений в выражениях"
24 май 04, 14:47    [696744]     Ответить | Цитировать Сообщить модератору
 Re: АХТУНГ! Как обратиться к полю формы :)  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9898
2 Саныч
Спасибо, уже нашел :)

"unexpected results in some circumstances" - это, видимо, прекращение поддержки в XP :)

2 TriAxp
Я вот, как и Саныч, через поиск по &
А поиск по | - ниче не дал.
24 май 04, 14:47    [696745]     Ответить | Цитировать Сообщить модератору
 Re: АХТУНГ! Как обратиться к полю формы :)  [new]
TriAxp
Guest
в Access 2000 эта штука тоже не работает, кстати.
А я в help'е нажал "Rebuild..." -> "maximize search capabilities", вот оно и нашлось ;-)
24 май 04, 14:52    [696761]     Ответить | Цитировать Сообщить модератору
 Re: АХТУНГ! Как обратиться к полю формы :)  [new]
АлексейК
Member

Откуда: http://www.msdatabase.ru , Moscow
Сообщений: 7683
а чем отличается если сделать как обычно?

= Forms![Форма]![Поле]

автор
В XP - не работает. Вернее работает, но не так. Выводит строку as is.


можно подробнее ?
24 май 04, 15:00    [696784]     Ответить | Цитировать Сообщить модератору
 Re: АХТУНГ! Как обратиться к полю формы :)  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Ну дык - так и пишет: Form, blablabla...
24 май 04, 15:02    [696794]     Ответить | Цитировать Сообщить модератору
 Re: АХТУНГ! Как обратиться к полю формы :)  [new]
Victosha
Member

Откуда: Москва
Сообщений: 2620
По тому, что тут писано, похоже - речь идет о механизме макроподстановки.
Устаревшим его, видно, объявляют по причине явного ввода в строй Eval
24 май 04, 15:03    [696798]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить