Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с Control. Acc97
 
 автор: al69   (04.08.2010 в 16:56)   личное сообщение
 
 

Всем добрый доброго времени суток. Проблема такая. Есть форма, в ней несколько полей и флажков. Необходимо найти флажок, зная его имя, и узнать его значение. Делаю так:

Dim flag_c As Control, flag_p As Control, flag As string
Set frm = Screen.ActiveForm
For Each flag_c In frm.Controls
If flag_c.ControlName = flag Then
flag_p.ControlName= flag_c.ControlName
End If
Next flag_c

Где flag это имя имя этого флажка. Нужно присвоить переменной flag_p этот контрол, что бы дальше работать с ним. Что то ничего не выходит. Может знает кто?

  Ответить  
 
 автор: Lukas   (04.08.2010 в 17:10)   личное сообщение
 
 

Для 2003 так надо:
Set ОбъектнаяПеременная=frm.Controls(ИмяКонтрола)
Для 97 не знаю.

  Ответить  
 
 автор: al69   (04.08.2010 в 17:23)   личное сообщение
 
 

Блин, не работает. Ругаться перестала, но обращения к этому контролу нет

  Ответить  
 
 автор: Lukas   (04.08.2010 в 17:56)   личное сообщение
 
 

Объектная переменная какого класса описана?
Попробуйте следующей строчкой за Set ....
добавить:
Debug.Print ОбъектнаяПеременная.Name
и смотрите в окне отладчика.

  Ответить  
 
 автор: al69   (04.08.2010 в 18:03)   личное сообщение
 
 

Debug.Print ОбъектнаяПеременная.Name: В окне отладки выодит имя флажка, причем то которое нужно.

  Ответить  
 
 автор: Lukas   (04.08.2010 в 18:07)   личное сообщение
 
 

Ну раз выводит нужное имя, значит ссылка корректная.
Ищите проблему в другом месте.

  Ответить  
 
 автор: al69   (04.08.2010 в 18:12)   личное сообщение
 
 

Спасибо, буду рыть. Блин, жара уже задолбала.

  Ответить  
 
 автор: osmor   (04.08.2010 в 17:37)   личное сообщение
 
 

а что такое ControlName ?
нет у контрола такого свойства

  Ответить  
 
 автор: al69   (04.08.2010 в 18:01)   личное сообщение
 
 

ControlName это имя контрола. Можно просто Name. Но так и так не работает.

  Ответить  
 
 автор: kot_k_k   (05.08.2010 в 08:38)   личное сообщение
 
 

Dim flag_c As Control, flag_p As Control, flag As string
Set frm = Screen.ActiveForm - заорало про описание переменной
For Each flag_c In frm.Controls
If flag_c.ControlName = flag Then
flag_p.ControlName= flag_c.ControlName - заорало Объектная переменная или переменная блока With не задана
End If
Next flag_c

flag_p.ControlName - это про что??? flag_p=Nothing

 Нужно присвоить переменной flag_p этот контрол


Dim flag_p As Variant

flag_p= flag_c.Value
или
flag_p= flag_c

а мы присваиваем непонятному контролу имя другого контрола, а если так

flag_p= flag_c.ControlName - то ваще смысла нет т.к. это получаем ИМЯ контрола, которое и так известно.

  Ответить  
 
 автор: kot_k_k   (05.08.2010 в 08:51)   личное сообщение
 
 

вообще все это фигня если только не задание из методички (хотя тоже бред)

Set frm = Screen.ActiveForm

l = Me(flag) - это работает только в форме естественно.
z = Forms!имя_формы.Form(flag)
c = frm(flag)



все это одно и тоже и не нужно никакого цикла, ненужно сравнений

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList