powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Аксесс сам подменяет имена контролов
10 сообщений из 35, страница 2 из 2
Аксесс сам подменяет имена контролов
    #32531727
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я вот всегда стараюсь соломку постелить дополнительно, хотя новые технологии изготовления парашютов вроде обещают мягкую посадку. Например - пользователей учу ВСЕГДА давать файлам имена ТОЛЬКО из латинских букв,цифр и подчеркиваний. Патамушта если в теле письма (Plain text & Rich) оформлять псевдогиперссылку (не знаю, как по науке называется), начинающуюся c file: или \\, то она Микрософтом обрубится на первом неправильном символе или пробеле. Может я конечно настроек каких-то не знаю, но мне легче людей убедить соблюдать кое-какую гигиену, чем потом неизвестно когда и в каком месте, но наступить на эти грабли
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32533039
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вспомнил.
траблы были с событиями контролов:
например есть 2 контрола
если первый
[btn 1]
то второй уже не назвать
[btn_1]
или
[btn.1]
потому как и там и там обработчики были бы
btn_1_Click()

чтобы переименовать
[btn.1]
в
[btn_1] или [btn 1]
надо сначала переименоват во что-то другое, и только потом в то, что хочется (т.е., как я понял создается 2 имени, name и EventProcPrefix, оба должны быть уникальны, при добавлении/переименовании проверяется именно EventProcPrefix)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
?forms( 0 ).controls( 0 ).name
btn  1 
?forms( 0 )![btn  1 ].properties( 1 ).name
Name
?forms( 0 )![btn  1 ].properties( 0 ).name
EventProcPrefix
?forms( 0 )![btn  1 ].properties( 0 )
btn_1
?forms( 0 ).controls( 0 ).name = "btn_1"
Ложь
вот наскоко (в приложениях, да и кое где в аксессе) реализовано обращение (и работа с процедурами) исключительно через EventProcPrefix, а не (как видимо может быть) через Name, это вопрос. (Я когда-то ничтоже сумняшеся искал процедуры как .Name & "_" & EventName - что, ес-сно с такими именами не сработатет)
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32533047
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да. То, что при этом возникают проблемы с EventProcPrefix, я понял сразу, когда мне это показали.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32540026
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кажется, есть точная формулировка того, что происходит.

1. Если мы обращаемся к такому контролу по полному синтаксису (Me!MyControl или Forms!MyForm!MyControl или и т.п.), то надо писать имя как есть. Если в нем есть пробелы, то надо писать именно пробелы и добавлять квадратные скобки.

2. Если мы обращаемся к нему из его формы и без полного синтаксиса, просто как к переменной, то надо заменять пробелы на подчеркивания.

3. Отступать от пп. 1 и 2 и писать наоборот нельзя.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32540120
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч
про ! - понято.
Me. в такой ситуации должна пользовать _ ? или Me.[тра та та] тоже допустимо?
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32540125
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я понял так, что водораздел проходит следующим образом: с одной стороны полный синтаксис (из той же формы и не из той, с точкой и воскл.знаком), с другой неполный (из той же формы, как переменная).
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32540130
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок
осталось только понять - список имен (контролов) - он всегда двойной? все вышерассказанное как будто на это указывает...
При наличии двойного списка один из вариантов обращения может оказаться "эффективней" в смысле скорости, а второй, который окажется медленнее, скорее всего, может быть "ускорен" почти до первого.
Может быть все это и не так (скорость) - все-таки надо как-нибудь собраться, пару "экспериментов" провесть.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32540139
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да, похоже, что он двойной. Но при "нормальных" именах оба варианта совпадают.

Короче, вопрос в том, какой из вариантов быстрее при обращении из той же формы. В уже упоминавшемся топике такого сравнения нет. Восполняю пробел.

Me("MyControl") -> 11.57
Me!MyControl -> 11.57
Me.MyControl -> 16.20
MyControl -> 15.05

Мораль: как и ожидалось, выпендриваться бесполезно.
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32542878
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч

про выпендриваться
Компания Microsoft официально подтверждает правильность именно такого словоупотребления применительно к пробелам в именах следующей статьей из KB:

http://support.microsoft.com/?kbid=826763

(не рекомендованные к применению в именах символы.)

Саныч, и почему ты всегда прав? ;))
...
Рейтинг: 0 / 0
Аксесс сам подменяет имена контролов
    #32542975
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А я на самом деле и сам не понял, что имел в виду...
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Аксесс сам подменяет имена контролов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]