powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Определить существование контрола на форме
9 сообщений из 9, страница 1 из 1
Определить существование контрола на форме
    #32653382
Как определить - есть ли элемент с определенным именем на форме ?
В принципе мою задачу можно решить и с помощью On Error Resume Next, но хочется все сделать правильно

---------------------------------------
С уважением, Каримбаев Тимур
...
Рейтинг: 0 / 0
Определить существование контрола на форме
    #32653386
guest1187
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробежаться по коллекции Controls формы в цикле:

for each ctl in me.controls
...
next
...
Рейтинг: 0 / 0
Определить существование контрола на форме
    #32653390
спасибо большое

---------------------------------------
С уважением, Каримбаев Тимур
...
Рейтинг: 0 / 0
Определить существование контрола на форме
    #32653392
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем это проверять?
Вроде бы контрол либо есть, либо его нет.
Ну а, если уж так надо, то можно создать массив контролов и проверять по нему наличие.
...
Рейтинг: 0 / 0
Определить существование контрола на форме
    #32653398
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest1187
у тебя по-проще :)
...
Рейтинг: 0 / 0
Определить существование контрола на форме
    #32653418
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или обратиться и ошибку обработать.
...
Рейтинг: 0 / 0
Определить существование контрола на форме
    #32653436
спасибо. все хорошо получилось

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Function FormHasControl(ByRef f_frm As Form, ByVal f_name As String) As Boolean
        Dim c_ctl As Control
        
        FormHasControl = False
        
        For Each c_ctl In f_frm.Controls
            If c_ctl.Properties.Item("name") = f_name Then FormHasControl = True
        Next
End Function

задача была такая - есть две таблицы:

fields (name, control_name)
fields_values (project_id, name, value)

и юзеры могут заполнять эти значения из разных форм.
полей довольно много
удобнее всего вроде сделать процедуры которые при загрузке формы заполняют контролы из fields_values (в соответствии с неким project_id), а при выгрузке - записывали все обратно в таблицы из контролов.
программа проходится по всем fields и проверяет - есть ли на форме контрол с именем control_name. Конечно плохо что приходится соблюдать уникальность имен полей, но по другому просто не придумывается :(


---------------------------------------
С уважением, Каримбаев Тимур
...
Рейтинг: 0 / 0
Определить существование контрола на форме
    #32653473
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тимур Каримбаевc_ctl.Properties.Item("name")
Можно короче: c_ctl.name :^)
...
Рейтинг: 0 / 0
Определить существование контрола на форме
    #32653488
2Владимир Саныч
спасибо :)
я сначала начал так делать - это выпадающее окошко со свойствами c_ctl не показал свойства name :)
а вообще - работает

---------------------------------------
С уважением, Каримбаев Тимур
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Определить существование контрола на форме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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