Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > От имени переменной к значению


Автор: MarinaK 26.10.2009, 07:17
Есть имя поля в формате String. Как получить значение этого поля?

Если вопрос слишком чайниковский, прошу прощения, всё крепко забыто...

Автор: Akina 26.10.2009, 08:36
Fields("FieldName").Value

Автор: MarinaK 8.11.2009, 00:50
Цитата
Fields("FieldName").Value
Что-то не получается... "Sub or Function not defined" при компиляции.
А если 
Код
Me.Fields("FieldName")
, то "Method or data member not found".

Автор: Akina 8.11.2009, 17:04
Имя КАКОГО поля? Я дал вариант для рекордсета (прямо или косвенно) - причём ещё следует указать, от какого рекордсета брать Fields.
Вы же пытаетесь найти Fields у формы, у которой такого свойства, само собой, нет.

Автор: MarinaK 10.11.2009, 03:23
Спасибо за разъяснения. Правда, вопрос был про имя поля формы и его значение. Поле числовое.

Автор: Akina 10.11.2009, 09:58
Цитата(MarinaK @  10.11.2009,  04:23 Найти цитируемый пост)
вопрос был про имя поля формы 

А телепаты у нас в отпуске.

Автор: MarinaK 11.11.2009, 03:44
Цитата(Akina @ 10.11.2009,  09:58)
А телепаты у нас в отпуске.
Я помню, что эта Ваша любимая фраза, Акина, поэтому и старалась сформулировать вопрос как можно чётче. Не вышло. 
И... у меня так и не получилось. Пробую спросить ещё раз. Есть форма. Есть название поля (пусть - числового) в текстовом формате. Как обратиться к самому полю, получить его значение/присвоить ему значение или поменять его свойства?

Автор: Akina 11.11.2009, 09:02
Цитата(MarinaK @  11.11.2009,  04:44 Найти цитируемый пост)
Есть форма. Есть название поля (пусть - числового) в текстовом формате.

На форме нет полей. Это на изображении формы на экране есть поля. А на форме есть только контролы. Это - коллекция, поэтому к ней можно обращаться непосредственно по имени элемента.
Код

Dim MyTextBox As TextBox
Set MyTextBox = MyForm.Controls("TextBoxName")
MyTextBox.SetFocus
msgbox MyTextBox.Text
MyTextBox.Text = "Some Text String"
Обратите внимание - в Аксессе перед тем, как получить или установить свойство контрода, ему НЕОБХОДИМО передать фокус.
PS. Текстбокс ВСЕГДА содержит текст. Даже если он выглядит как число. Для получения численного значения используем Val(), в обратном направлении CStr().

Автор: bopoha 11.11.2009, 11:32
Akina, 
Цитата(Akina @  11.11.2009,  09:02 Найти цитируемый пост)
Это - коллекция, поэтому к ней можно обращаться непосредственно по имени элемента.

Не только так. Можно и так обращаться к элементам управления формы:
Код

'-- из модуля формы
Me.MyControl.Value = 123
Me.MyControl = 123

Автор: Akina 11.11.2009, 11:37
Конечно, можно. Но не универсально.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)