powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Переменная в имени объекта
4 сообщений из 4, страница 1 из 1
Переменная в имени объекта
    #32157001
Nikitos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, ребята!
Есть 40 объектов TextBox в форме Access. Называются, допустим, "П1"..."П40".
Каким образом можно совершать с ними одни и те же действия? Например, мне нужно поменять П1.Caption, П2.Caption ... и так сорок раз.
Пробовал:

Dim i as Integer
for i=1 to 40
...
with Eval("П" & i) ' "П"+"1" тоже не работает! И без With не пашет.
.Caption="Хрен"
End If
...


Access пишет ошибку. Что-то типа "Не могу найти объект П1". А он есть железно!

Мне кажется этот вопрос вообще должен быть из ФАКа, но я не нашел.
Подскажите, как это решается, а то код получается очень громоздким.

Заранее спасибо!
...
Рейтинг: 0 / 0
Переменная в имени объекта
    #32157013
Smile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, обзови их все как П и сделай им индексы
и будет у тебя не П1, П2, П40...., а П(1), П(2)...П(40)
так как ты делаешь в VBA, по-моему, сделать нельзя
...
Рейтинг: 0 / 0
Переменная в имени объекта
    #32157046
Фотография ulis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то форум по VB :) ну да ладно. Что-то не припомню, чтобы у текстовых полей было св-во Caption. Если речь идет о метках, то можно, например, так:

Private Sub test()

Dim lblT As Control

For Each lblT In Me.Controls
If Left(lblT.Name, 1) = "П" Then
lblT.Caption = "Редька"
End If
Next lblT


End Sub

В VB можно использовать массивы элементов, что ИМХО удобнее
...
Рейтинг: 0 / 0
Переменная в имени объекта
    #32166422
Шогал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через Eval, если я не ошибаюсь. Насколько я помню, Eval в VB действует почти также как и в JS.

У Вас в тексте допущена ошибка: End With должно стоять, а не End If. Во вторых, русские символы в именах объектов ставить нельзя (насколько я понимаю).

Может быть, поможет такое:

For i=1 to 40
Eval("P"&i&".Caption=""XPEH""")
Next
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Переменная в имени объекта
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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