|
|
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
Это есть необъяснимая загадка. Да, я уже и сам убедился, что в коллекции Properties имя Value отсутствует напрочь. Однако вот цитата из хелпа (курсив мой): You can use the Value property to determine or specify if a control is selected, the selected value or option within the control, or the text contained in a text box control. ... The Value property returns or sets a control's default property, which is the property that is assumed when you don't explicitly specify a property name. ... This means that the following two statements are equivalent. Forms!frmCustomers!optCreditApproved.Value = True Forms!frmCustomers!optCreditApproved = True Получается, что есть свойства, обратиться к которым можно только определенным способом... Гм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 14:21 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
2 ВС Да, уж... А вот еще: такая процедура Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. дает такие результаты: Forms![Форма1].Controls![Поле1] - 17,36 Forms![Форма1]![Поле1] - 17,36 me![Поле1] - 11,5 me![Поле1].value - 15,8 me.Controls.Item(0) - 10,4 me.Controls(0) - 10,4 me(0) - 11,5 me(0).value - 13.9 me("Поле1") - 12.7 me("Поле1").value - 15.0 Получается, что если в одном случае более полной записи скорость выполнения заметно падает, а в другом наоборот возрастает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 14:52 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
Итого: .Item - не влияет Me - хорошо .Controls - хорошо, когда обращение по номеру, и не влияет, когда по имени .Value - плохо и обращение со стрингом хуже, чем по номеру или по имени ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 15:01 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
Я кнешна извеняюсь, но я тоже тестил (тогда еще), что отражено в одном из вышеупомянутых топике: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Если присмотреться, то можно увидеть, что скорость при обращени по индексу зависит от самого индекса, вернее, от порядкового номера контрола в форме, и если через индекс обращаться к элементу с индексом 250, то наверно будет быстрее обратиться не через индекс... //не знает, что хочет этим сказать - просто так, знаете ли, дополнение подкинул... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 15:18 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
У меня идея, которая мне самому кажется здравой. Не говорить, какой синтаксис работает быстрее. А сказать только, что скорость может зависеть от синтаксиса по сложным многопараметрическим (sic!) формулам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 15:37 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
"Сейчас прольется чья-то кровь..." Сейчас, сейчас... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 15:44 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
1. Вопросы 1.1. Как обратиться к объекту формы? 1.2. Как обратиться к объекту формы, имя которого вычисляется на лету или содержит специальные символы? 1.3. Как обратиться к объекту подчиненной формы? 1.4. Обращение к объекту формы из контекста формы. 2. Ответы Чтобы прочитать или изменить содержимое или свойство объекта формы, в первую очередь надо составить выражение, позволяющее однозначно определить ссылку именно на этот объект. 2.1. Обращение к объекту формы Выражение, определяющее ссылку на объект формы, в общем виде выглядит так: Forms![Форма1].Controls![Поле1].Value (1) Обратите внимание, что операторы "!" и "." идут через один. Чередуются имена коллекций и их элементов, причем оператор "!" означает, что справа от него указан элемент коллекции, а оператор "." служит дя обращения к свойству этого элемента (см. пп. 3.5 и 3.6). Прямые скобки следует использовать, если имя элемента содержит внутренние пробелы, иначе их наличие не обязательно. Серым цветом здесь и далее выделены коллекции и свойства, используемые Access по умолчанию. Их также можно опускать, если при этом не возникнет двусмысленности. То есть выражение (1) может быть записать по-другому: Forms![Форма1]![Поле1] Будьте внимательны, если пользуетесь подобными сокращениями. В случае, когда формы содержит одноименные элементы различных коллекций (например, поле источника данных формы и элемент коллекции .Controls), пропуск идентификатора коллекции может повлечь за собой неверную работу вашей программы (см. п. 3.6). 2.2. Обращение к объектам, имена которых вычисляются "на лету" или не соответствуют "соглашению об именах". В выражении (1), разделенные оператором ".", перечисляются связки типа Коллекция![Имя элемента] (2) Любую из этих связок можно переписать в виде Коллекция.Item(ПорядковыйНомерЭлементаВколлекции) (3) где ПорядковыйНомерЭлементаВколлекции - выражение, возвращающее целое число (нумерация элементов в коллекции начинается с 0), а также Коллекция.Item("Строка-имя элемента") (4) где в качестве аргумента может быть указано любое выражение, возвращающее значение типа String, соответствующее имени существующего элемента коллекции. 2.3. Обращение к объекту подчиненной формы Корректная ссылка на свойство подчиненной формы или отчета требует указания полного идентификатора формы c использованием свойства Form элемента управления-подчиненная форма: Forms![Форма1].Controls![Форма2].Form.Controls![Поле1].Value В данном примере: Forms![Форма1].Controls![Форма2] является ссылкой на элемент управления, в котором выводится подчиненная форма. А Forms![Форма1].Controls![Форма2].Form является ссылкой на саму подчиненную форму. Указание свойства Form для ссылки на подчиненную форму или на ее свойства является обязательным. Аналогичным образом, с помощью вставки выражений типа .Controls![Форма2].Form (или .Controls(“Форма2”).Form), строятся выражения для подчиненных форм третьего и далее уровней вложености. 2.4. Обращение к объекту формы из контекста формы Для ссылки на текущий экземпляр объекта, в котором в данное время выполняется программа, используется ключевое слово Me. Все процедуры, связанные с текущим объектом, имеют доступ к объекту, указываемому с помощью слова. Пример использования слова Me в модуле формы, содержащей поле Поле1: Me.Controls![Поле1].Value 2.5. Ускорение работы программ. При построении выражений, определяющих ссылки на объект, вам следует иметь в виду, что программа, использующая ключевое слово Me, выполняется быстрее, чем использующая полный синтаксис имени объекта. Причем, чем больше уровень вложенности подчиненной формы, тем больший выигрыш в скорости вы получите, используя Me. если вам требуется обратиться к свойству .Value объекта, ключевое слово .Value лучше опустить. выражение типа (4) выполняется медленнее, чем (3) и (2). Кроме того, если в некотором фрагменте кода встречаются две и более ссылок а некоторый объект, присвойте его объектной переменной. Каждый раз, когда вы ссылаетесь на объект, Access приходится выяснять, к какому объекту относится ссылка, что приводит к выполнению лишней работы. Но если присвоить ссылку на объект переменной, Access «ищет» объект всего один раз и кэширует ссылку на него в памяти. Имейте в виду, что после окончания использования объектной переменной, ее следует очистить: objVar = nothing Примечания: вместо инструкции «.Value», использованной в большинстве примеров, может быть указано любое доступное свойство или метод объекта формы, например, .Name, .Width, .Enabled, .Tag и т.д. Если требуется прочитать или изменить именно содержимое объекта, то инструкцию «.Value» можно не использовать. все вышесказанное в равной мере относится и к отчетам, если заменить все вхождения ключевых слов Form и Forms на Report и Reports. 3. Дополнительная информация 3.1. Построитель выражений некоторых русифицированных версий Microsoft Access автоматически ставит несуществующую инструкцию [Форма] вместо [Form]. Для корректной работы программы следует вручную исправить полученное выражение. 3.2. Некоторые построители выражений обособляют все названия полей и форм, а также ключевые слов прямыми скобками, например, так: [Forms]![Форма1]![Форма2].[Form]![Поле1].[Value]. В принципе, их использование необходимо только для элементов, чьи имена содержат внутренние пробелы. 3.3. В «Соглашении об именах полей, элементов управления и объектов» сказано, что имя может включать любую комбинацию букв, цифр, пробелов и специальных символов за исключением точки (.), восклицательного знака (!), надстрочного символа (`), прямых скобок ([ ]) и управляющих символов (с кодами ASCII от 0 до 31), а также не должно начинаться с символа пробела. Однако вы легко сможете создать объект, имя которого нарушает эти правила. Если вы решили спорить с программистами из Microsoft, тогда следует быть готовым к тому, что, например, «Пробелы в именах могут при некоторых обстоятельствах вызывать конфликты в программах Visual Basic». 3.4. Обратите внимание: название формы, под которым она хранится в файле базы данных, и значение ее свойства Имя (Name) в роли объекта-подчиненной формы, которое и следует использовать в ссылках, – не одно и тоже! 3.5. Отличия «.» и «!». Из системы помощи Microsoft Access 97: Операторы ! и . (точка) в идентификаторах указывают тип элемента, стоящего справа от оператора. Оператор ! указывает, что следующий за ним элемент является элементом, определяемым пользователем (элементом семейства). Например, с помощью оператора ! определяют ссылку на открытую форму, отчет или элемент управления в открытой форме или отчете. (Forms![Заказы]![КодЗаказа]) Оператор . (точка) обычно указывает, что следующий за ним элемент определен в Microsoft Access. Например, оператор . (точка) используется для ссылок на свойства форм, отчетов и элементов управления. Допускается также использование оператора . (точка) для ссылок на значение поля в инструкции SQL, метод Visual Basic for Application или семейство. Например, идентификатор Forms![Заказы].Controls представляет ссылку на семейство Controls формы «Заказы». 3.6. Совпадающие наименования полей, переменных, полей данных. В системе помощи Microsoft Access описаны довольно обширные «правила наименования объектов», суть которых сводится к рекомендации давать уникальные имена полям таблиц, самим таблицам, формам, переменным, функциям и пр. Причем имена не должны совпадать с длинным перечнем зарезервированных слов. В большинстве случаев вы можете отступать от этих правил, но в этом случае вы будете действовать на свой страх и риск. Несмотря на вышеуказанные правила, встроенные мастера создания форм создают поля с именами, совпадающими с именами соответствующих полей таблицы-источника данных. В этом случае следует использовать полный синтаксис обращения к объекту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 15:51 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
> "Сейчас прольется чья-то кровь..." > Сейчас, сейчас... Предчувствия его не обманули! > Выражение, определяющее ссылку на объект формы, в общем виде выглядит так: > Forms![Форма1].Controls![Поле1].Value (1) Это ссылка не на объект, а на его Value. > Прямые скобки Вроде они назывались квадратными... (?) > следует использовать, если имя элемента содержит внутренние пробелы, иначе их наличие не обязательно. А также минусы и прочую дребедень из какого-то списка. > Кроме того, если в некотором фрагменте кода встречаются две и более ссылок а некоторый объект, присвойте его объектной переменной. Или пользуйтесь With. > В принципе, их использование необходимо только для элементов, чьи имена содержат внутренние пробелы. Или прочую дребедень. > Обратите внимание: название формы, под которым она хранится в файле базы данных, и значение ее свойства Имя (Name) в роли объекта-подчиненной формы, которое и следует использовать в ссылках, – не одно и тоже! Это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 16:06 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
А хорошо, что я не взялся писать альтернативный текст... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 16:15 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
2ВС Нашел-таки, к чему придраться :)) >Вроде они назывались квадратными... (?) В хелпе 97-го - прямые. >А также минусы и прочую дребедень из какого-то списка. Ок. >> Обратите внимание: название формы, под которым она хранится в файле базы данных, и значение ее свойства Имя (Name) в роли объекта-подчиненной формы, которое и следует использовать в ссылках, – не одно и тоже! > Это как? Да фих знает как сказать. Форма называется "Форма2", а ее контрол в Форме1 может иметь имя "Абырвалг". И писать придется [Форм1]![Абырвалг]![Поле1]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 16:16 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
>А хорошо, что я не взялся писать альтернативный текст... Это еще почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 16:17 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
это... с первого прочтения не въехал ни во что практически :) Т.е. это не значит, что плохо написано, а значит то я прочитал то, что я знаю (знания былы оформлены словами) и меня постигло "растеряйство" :) Почитаю еще позже, а пока могу добавить, что не objVar = nothing, а Set objVar = nothing. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 16:19 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
> Нашел-таки, к чему придраться :)) Работа у нас такая... :^) >> Обратите внимание: название формы, под которым она хранится в файле базы данных, и значение ее свойства Имя (Name) в роли объекта-подчиненной формы, которое и следует использовать в ссылках, – не одно и тоже! > Это как? > Форма называется "Форма2", а ее контрол в Форме1 может иметь имя "Абырвалг". И писать придется [Форм1]![Абырвалг]![Поле1]. А. Теперь дошло. Тогда: Во-первых, это не значение ее свойства Имя (Name) в роли объекта-подчиненной формы, а значение свойства Имя (Name) того контрола, в котором она сидит. Во-вторых, не [Форм1]![Абырвалг]![Поле1], а [Форм1]![Абырвалг].Form![Поле1] - ты же сам написал: Указание свойства Form для ссылки на подчиненную форму или на ее свойства является обязательным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 16:22 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
> > А хорошо, что я не взялся писать альтернативный текст... > Это еще почему? А у тебя лучше вышло. Мои поправки - не в счет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 16:23 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
> Во-вторых, не [Форм1]![Абырвалг]![Поле1], а [Форм1]![Абырвалг].Form![Поле1] Хехе А без твоих и Нуф-Нуфовских поправок ничего бы и не вышло. Ланда, через полчасика очередное творение положу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 16:29 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
и еще одно "это..." :) это... лично мне как начинающему аксессисту, ну нифига не понятно когда же что пользовать! Например: Forms![Форма1]![Поле1] - совсем не понятно, что без данной ссылки не обойтись при обращении к контролу другой открытой формы . Т.е. я имею сказать, что необходимо к каждому варианту добавить Плюсы и Минусы использования (где можно указывать и отностилельную скорость выполнения в процентах), или что-то типа "Когда нужно использовать данный вариант" - выбрать вариант обращения к объекту (из представленных) для меня, как для начинающего аксессиста, ну просто не под силам, т.к. они просто перечислены и все :( И еще про обращение через индексы. Да быстро. Да удобно (может быть иногда). НО!!! Индексы контролов могут меняться при добавлении/удалении/изменении_z-расположения, делая код неработоспособным и найти такие ссылки по индексам в коде оч.сложно (А вот на какой контрол ссылкается в форме код Me(1) - на Контрол "Пупырышки" или контрол "Мурашки"? :) пока фсе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 16:51 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
1. Вопросы 1.1. Как обратиться к объекту формы? 1.2. Как обратиться к объекту формы, имя которого вычисляется на лету или содержит специальные символы? 1.3. Как обратиться к объекту подчиненной формы? 1.4. Обращение к объекту формы из контекста этой формы. 2. Ответы Чтобы прочитать или изменить содержимое или свойство объекта формы, в первую очередь надо составить выражение, позволяющее однозначно определить ссылку именно на этот объект. 2.1. Обращение к объекту формы Выражение, определяющее ссылку на свойство .Value (значение) объекта формы, в общем виде выглядит так: Forms![Форма1].Controls![Поле1].Value (1) Обратите внимание, что операторы "!" и "." идут через один. Чередуются имена коллекций и их элементов, причем оператор "!" означает, что справа от него указан элемент коллекции, а оператор "." служит дя обращения к свойству этого элемента (см. пп. 3.5 и 3.6). Прямые скобки следует использовать, если имя элемента содержит внутренние пробелы или другие специальные символы (кроме, соответственно, "]" и "["), иначе их наличие не обязательно. Серым цветом здесь и далее выделены коллекции и свойства, используемые Access по умолчанию. Их также можно опускать, если при этом не возникнет двусмысленности. То есть выражение (1) может быть записать по-другому: Forms![Форма1]![Поле1] Будьте внимательны, если пользуетесь подобными сокращениями. В случае, когда формы содержит одноименные элементы различных коллекций (например, поле источника данных формы и элемент коллекции .Controls), пропуск идентификатора коллекции может повлечь за собой неверную работу вашей программы (см. п. 3.6). 2.2. Обращение к объектам, имена которых вычисляются "на лету" или не соответствуют "соглашению об именах". В выражении (1), разделенные оператором ".", перечисляются связки типа Коллекция![Имя элемента] (2) Любую из этих связок можно переписать в виде Коллекция.Item(ПорядковыйНомерЭлементаВколлекции) (3) где ПорядковыйНомерЭлементаВколлекции - выражение, возвращающее целое число (нумерация элементов в коллекции начинается с 0), а также Коллекция.Item("Строка-имя элемента") (4) где в качестве аргумента может быть указано любое выражение, возвращающее значение типа String, соответствующее имени существующего элемента коллекции. 2.3. Обращение к объекту подчиненной формы Корректная ссылка на свойство подчиненной формы или отчета требует указания полного идентификатора формы c использованием свойства Form элемента управления-подчиненная форма: Forms![Форма1].Controls![Форма2].Form.Controls![Поле1].Value В данном примере: Forms![Форма1].Controls![Форма2] является ссылкой на элемент управления, в котором выводится подчиненная форма. А Forms![Форма1].Controls![Форма2].Form является ссылкой на саму подчиненную форму. Указание свойства Form для ссылки на подчиненную форму или на ее свойства является обязательным. Аналогичным образом, с помощью вставки выражений типа .Controls![Форма2].Form (или .Controls(“Форма2”).Form), строятся выражения для подчиненных форм третьего и далее уровней вложености. 2.4. Обращение к объекту формы из контекста этой формы Для ссылки на текущий экземпляр объекта, в котором в данное время выполняется программа, используется ключевое слово Me. Все процедуры, связанные с текущим объектом, имеют доступ к объекту, указываемому с помощью слова. Пример использования слова Me в модуле формы, содержащей поле Поле1: Me.Controls![Поле1].Value 2.5. Ускорение работы программ. При построении выражений, определяющих ссылки на объект, вам следует иметь в виду, что программа, использующая ключевое слово Me, выполняется быстрее, чем использующая полный синтаксис имени объекта. Причем, чем больше уровень вложенности подчиненной формы, тем больший выигрыш в скорости вы получите, используя Me. если вам требуется обратиться к свойству .Value объекта, ключевое слово .Value лучше опустить. выражение типа (4) выполняется медленнее, чем (3) и (2). Кроме того, если в некотором фрагменте кода встречаются две и более ссылок а некоторый объект, присвойте его объектной переменной или используйте блок With. Каждый раз, когда вы ссылаетесь на объект, Access приходится выяснять, к какому объекту относится ссылка, что приводит к выполнению лишней работы. Но если, например, присвоить ссылку на объект переменной, Access «ищет» объект всего один раз и кэширует ссылку на него в памяти. Имейте в виду, что во втором случае, после окончания использования объектной переменной, ее следует очистить: Set objVar = nothing Примечания: вместо инструкции «.Value», использованной в большинстве примеров, может быть указано любое доступное свойство или метод объекта формы, например, .Name, .Width, .Enabled, .Tag и т.д. Если требуется прочитать или изменить именно содержимое объекта, то инструкцию «.Value» можно не использовать. все вышесказанное в равной мере относится и к отчетам, если заменить все вхождения ключевых слов Form и Forms на Report и Reports. 3. Дополнительная информация 3.1. Построитель выражений некоторых русифицированных версий Microsoft Access автоматически ставит несуществующую инструкцию [Форма] вместо [Form]. Для корректной работы программы следует вручную исправить полученное выражение. 3.2. Некоторые построители выражений обособляют все названия полей и форм, а также ключевые слов прямыми скобками, например, так: [Forms]![Форма1]![Форма2].[Form]![Поле1].[Value]. В принципе, их использование необходимо только для элементов, чьи имена содержат внутренние пробелы или другие специальные символы (за исключением самих прямых скобок - тогда надо пользоваться выражениями типа (3) или (4)). 3.3. В «Соглашении об именах полей, элементов управления и объектов» сказано, что имя может включать любую комбинацию букв, цифр, пробелов и специальных символов за исключением точки (.), восклицательного знака (!), надстрочного символа (`), прямых скобок ([ ]) и управляющих символов (с кодами ASCII от 0 до 31), а также не должно начинаться с символа пробела. Однако вы легко сможете создать объект, имя которого нарушает эти правила. Если вы решили спорить с программистами из Microsoft, тогда следует быть готовым к тому, что, например, «Пробелы в именах могут при некоторых обстоятельствах вызывать конфликты в программах Visual Basic». 3.4. Обратите внимание: название формы, под которым она хранится в файле базы данных, и имя (Name) объекта .Control, содержащего эту подчиненную формы, которое и следует использовать в ссылках, – не одно и тоже! 3.5. Отличия «.» и «!». Из системы помощи Microsoft Access 97: Операторы ! и . (точка) в идентификаторах указывают тип элемента, стоящего справа от оператора. Оператор ! указывает, что следующий за ним элемент является элементом, определяемым пользователем (элементом семейства). Например, с помощью оператора ! определяют ссылку на открытую форму, отчет или элемент управления в открытой форме или отчете. (Forms![Заказы]![КодЗаказа]) Оператор . (точка) обычно указывает, что следующий за ним элемент определен в Microsoft Access. Например, оператор . (точка) используется для ссылок на свойства форм, отчетов и элементов управления. Допускается также использование оператора . (точка) для ссылок на значение поля в инструкции SQL, метод Visual Basic for Application или семейство. Например, идентификатор Forms![Заказы].Controls представляет ссылку на семейство Controls формы «Заказы». 3.6. Совпадающие наименования полей, переменных, полей данных. В системе помощи Microsoft Access описаны довольно обширные «правила наименования объектов», суть которых сводится к рекомендации давать уникальные имена полям таблиц, самим таблицам, формам, переменным, функциям и пр. Причем имена не должны совпадать с длинным перечнем зарезервированных слов. В большинстве случаев вы можете отступать от этих правил, но в этом случае вы будете действовать на свой страх и риск. Несмотря на вышеуказанные правила, встроенные мастера создания форм создают поля с именами, совпадающими с именами соответствующих полей таблицы-источника данных. В этом случае следует использовать полный синтаксис обращения к объекту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 16:55 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
2 Нуф-Нуф > и еще одно "это..." :) это... лично мне как начинающему аксессисту, ну нифига не понятно когда же что пользовать! Мне тоже, как начинающему аксессисту, почти не ясно, что, и главное, как, я тут понаписал > Forms![Форма1]![Поле1] - совсем не понятно, что без данной ссылки не обойтись при обращении к контролу другой открытой формы. Это и не нужно. Я дал это как минимальный способ обращения, и лишь позже, упомянув про контексты, ввел "Me". >Т.е. я имею сказать, что необходимо к каждому варианту добавить Плюсы и Минусы использования (где можно указывать и отностилельную скорость выполнения в процентах) Про скорость вроде бы есть в соответствующем разделе... >, или что-то типа "Когда нужно использовать данный вариант" - выбрать вариант обращения к объекту (из представленных) для меня, как для начинающего аксессиста, ну просто не под силам, т.к. они просто перечислены и все :( Дык, бери самый длинный - не ошибешься. А вообще, цитируя Гетца: "В целом оптимизация кода обычно влияет на быстродействие приложения в гораздо меньшей степени, чем оптимизация доступа к данным, а всего один дополнительный индекс принесет больше пользы, чем долгие часы, затраченные на оптимизацию кода VBA". А про индексы - как бы само сабой разумеется, что прежде чем написать Me(0), надо узнать, кто в этом "0" живет. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 17:05 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
Разделы "Ускорение работы" и "Примечания" перенес в "Дополнительную информацию". И давайте, пожалста, еще замечания, а то у меня завтра интернет халявный кончится, и я буду приходить редко и только с вопросами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 17:35 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
> И давайте, пожалста, еще замечания, а то у меня завтра интернет халявный кончится, и я буду приходить редко и только с вопросами. А я как раз хотел недельку подумать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 17:36 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
2ВС Действительно, может быть, лучше я вышлю тебе текст со всеми оформлятелями? И тады можно будет, в самом деле, подумать и пообсуждать спокойно и без спешки? А я потом буду ходить в готовый ФАК? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 17:41 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
Geo друг, но истина "та тоже" :) >Это и не нужно. Я дал это как минимальный способ обращения, и лишь позже, упомянув про контексты, ввел "Me". Не согласен, но спорить с тобой не буду - ты автор, тебе и карты :) Просто останусь при мнении, что к КАЖДОМУ варианту надо добавить когда и зачем и почему пользовать надо так... >Про скорость вроде бы есть в соответствующем разделе... ключевое слово "в процентах" имелось в виду... >Дык, бери самый длинный - не ошибешься. А вообще, цитируя Гетца: С Гетцем согласен полностью, с тобой (бери самый длинный) не совсем. Или, во всяком случае, не понял что есть "самый длинный" - по количеству символов длинный? :) >А про индексы - как бы само сабой разумеется, что прежде чем написать Me(0), надо узнать, кто в этом "0" живет. :) Ага... Узнаем, пишем. Через неделю (не говоря уже "через год") удаляем из формы какую-нить ненужную линию или кнопочку и... наслаждаемся ошибками типа "Объект не поддерживает свойство или метод". Т.е. индексы сместятся и то что раньше было нашим "Полем", теперь стало нашей Кнопкой со всеми вытекающими... А ежли ссылаться по имени (а не по индексу), то добавляй-задобавляйся и удаляй-заудаляйся и меняй Z-zаменяйся - код останется работоспособным. во шо я имел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 17:51 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
Нуф-Нуфу :) >>Это и не нужно. Я дал это как минимальный способ обращения, и лишь позже, упомянув про контексты, ввел "Me". >Не согласен, но спорить с тобой не буду - ты автор, тебе и карты :) Просто останусь при мнении, что к КАЖДОМУ варианту надо добавить когда и зачем и почему пользовать надо так... Когда и зачем - есть раздел про скорость, упомянуто про неоднозначность. См., что тебе подходит, и используй соответственно. >>Про скорость вроде бы есть в соответствующем разделе... >ключевое слово "в процентах" имелось в виду... Очень нестабильные результаты в процентах. Сравни твои и мои измерения. Единственное, что можно сказать с уверенностью - работает "быстрее" или "медленнее". >>Дык, бери самый длинный - не ошибешься. А вообще, цитируя Гетца: >С Гетцем согласен полностью, с тобой (бери самый длинный) не совсем. Или, во всяком случае, не понял что есть "самый длинный" - по количеству символов длинный? :) В данном случае да. Имею в виду, что если не уверен, то бери полную запись, без Me и не опуская умолчания. >>А про индексы - как бы само сабой разумеется, что прежде чем написать Me(0), надо узнать, кто в этом "0" живет. :) >Ага... Узнаем, пишем. Через неделю (не говоря уже "через год") удаляем из формы какую-нить ненужную линию или кнопочку и... Согласен. Сейчас допишу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 18:01 |
|
||
|
FAQ: Как обратится к полю формы или подчиненной формы
|
|||
|---|---|---|---|
|
#18+
>Имею в виду, что если не уверен, то бери полную запись, без Me и не опуская умолчания. Это первый шаг к жутким головнякам... Пишешь код, который потом собираешся использовать повторно, копируешь его в новую форму и... меняешь имена форм или удевляешься, а почему нажимаю кнопку в этой форме, а срабатывает другая? Еще раз повторю, что полный синтаксис доступа к форме вместо Ме можно использовать ТОЛЬКО в случае обращения к ДРУГОЙ форме! Для ссылки на контролы в форме с кодом ТОЛЬКО МЕ! //Впрочем, это уже цикл... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2003, 18:14 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32194531&tid=1675321]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
350ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 612ms |

| 0 / 0 |
