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

Форум: MS ACCESS

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

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

 
 

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

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

тема: vba
 
 автор: промка   (19.12.2009 в 15:14)   личное сообщение
 
 

Скажите пож как в программе в модуле узнать имя формы и затем взятть из формы поле спасибо

  Ответить  
 
 автор: Lukas   (19.12.2009 в 15:21)   личное сообщение
 
 

1. Если в модуле формы: Me.Name - вернет имя формы
2. Если в общем модуле: Forms(0).Name - вернет имя открытой формы с индесом в коллекции открытых форм =0
3. Что означает фраза:?


...взятть из формы поле...

  Ответить  
 
 автор: промка   (19.12.2009 в 15:26)   личное сообщение
 
 

Хочу присвоть в форме значение полю

  Ответить  
 
 автор: Lukas   (19.12.2009 в 15:38)   личное сообщение
 
 

Для кода в модуле формы:
Me![ИмяКонтроля].Value=100 'присваиваем числовое значение
Me.Controls("ИмяКонтроля").Value="abcd" 'присваиваем строковое значение
...
Для кода в общем модуле:
Forms("ИмяФормы").Controls("ИмяКонтроля").Value=Date() 'присваиваем значение функции
Forms("ИмяФормы")("ИмяКонтроля").Value=Forms("ИмяФормы")("ИмяДругогоКонтроля").Value
...
Есть еще варианты обращений к контролам формы, я перечислил не все.
.Value можно не писать, так как .Value есть свойство "по умолчанию" для контрола.
Для присвоения значений дат читать справку дополнительно.

  Ответить  
 
 автор: промка   (19.12.2009 в 15:45)   личное сообщение
 
 

спасибо forms (0) дает имя 1-ой открытой а как взять имя последней открытой

  Ответить  
 
 автор: Lukas   (19.12.2009 в 15:52)   личное сообщение
 
 

Forms(Forms.Count-1).Name
Можно ссылаться прямо по индексу в коллекции:
Forms(Forms.Count-1).Controls("ИмяКонтрола")=...

  Ответить  
 
 автор: Гоблин   (19.12.2009 в 16:40)   личное сообщение
 
 

Плиз продолжить дискуссию. Бывает при обращении к подчиненной форме выходит сообщение, что данная форма не открыта. Уж не таким ли образом к ней надо обращаться?

Можно ссылаться прямо по индексу в коллекции:

Это касается только контролов в форме. Верно?

  Ответить  
 
 автор: Denis V.   (19.12.2009 в 16:45)   личное сообщение
 
 

Подчинённая форма - это элемент управления на основной форме. Доступ к ней, как форме, можно получить так:

Forms(sNameMainForm).Controls(sSubFormControlName).Form

  Ответить  
 
 автор: Lukas   (19.12.2009 в 16:54)   личное сообщение
 
 

Подчиненная форма не попадает в коллекцию открытых форм Forms,
поэтому обращаться к ней через эту коллекцию бессмысленно.
Обращаться к подчиненной форме следует через форму, куда "вживлен" контрол-контейнер подчиненной формы, например так:
Forms("ИмяРодительскойФормы").Controls("ИмяКонтрола-Контейнера").Form
".Form" в конце указывает, что ссылку нужно установить не на контрол-контейнер, а на объект в
контроле-контейнере.


Можно ссылаться прямо по индексу в коллекции


Это относится к любой коллекции (формы, отчеты, контролы, модули, таблицы, запросы, поля таблицы или рекордсета и т.д.), только необходимо помнить:
нумерация членов встроенных коллекций начинается с 0, а определенных пользователем с 1.

Добавлено: Долго писал, много буков.

  Ответить  
 
 автор: snipe   (19.12.2009 в 17:00)   личное сообщение
 
 

Разберитесь с последовательностью происходящих событий при загрузке формы
возможно что контрол который грузится раньше пытается получить данные с контрола который еще не загрузился (последовательность зависит от последовательности перехода или индекса по ТАВ)

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

snipe, Вы о чем это сейчас и кому?

  Ответить  
 
 автор: snipe   (19.12.2009 в 17:06)   личное сообщение
 
 

Была у меня такая ерунда про которую Гоблин пишет пока не изменил последовательность перехода ни чего не помогало

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