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


Автор: SeregaVB 7.12.2006, 17:16
   Прежде всего Здравствуйте уважаемые Формучане.

   У меня возникла проблема с зенесением данных из таблицы в список (list) на Форме. 

   Описание: 
                     существует Таблица "tabLevel_I" с полем "Items", 
                     так же существует форма "frmLevel_I" на которой 
                     помещен список "lstItemsLevel_I".

   Задача следующая:
                     Необходимо при загрузке формы (событие Form_Load) 
                     произвести чтение всех записей из поля "Items" 
                     таблицы "tabLevel_I" и занести их в список "lstItemsLevel_I"
                     формы "frmLevel_I".
   Доп. задача:
                     В результате клика по конкретному пункту списка произвести
                     открытие формы "frmLevel_II" и передать ей строковой 
                     параметр = наименованию того поункта списка по которому
                     был произведен клик пользователем.

   Заранее благодарен всем откликнувшимся.

Автор: Юдифь 8.12.2006, 16:32
На событие Open формы frmLevel_I пишешь:

Код

Me!lstItemsLevel_I.RowSource = "SELECT tabLevel_I.Items FROM tabLevel_I"



Хотя селект можно и сразу списку назначить, это то же самое.

Потом на событие AfterUpdate списка пишешь:
Код

DoCmd.OpenForm "frmLevel_II", , , "field1 = '" & Me!lstItemsLevel_I & "'"



И всего делов smile 

Автор: Чикатилло 12.12.2006, 12:15
Прошу помочь в решении примерно такого вопроса:
возможно ли определить для элементов формы их индивидуальные номера и впоследствии обращаться к этим элементам по их номерам.
[email protected]   

Автор: dionisiu 15.12.2006, 11:18
Определить - нет, но обращаться в цикле через коллекцию Me.Controls(номер) можно. Вопрос: а зачем так сложно? Много контролов? однотипных?

Автор: Akina 15.12.2006, 15:08
Цитата(Чикатилло @  12.12.2006,  13:15 Найти цитируемый пост)
возможно ли определить для элементов формы их индивидуальные номера и впоследствии обращаться к этим элементам по их номерам.

Да, можно. dionisiu, Вы забываете о варианте:
Код

For i = 0 to Me.Controls.Count-1
   If Me.Controls(i).Name = "ИмяНужногоКонтрола" Then 
      ControlNum = i
      Exit For
   End If
Next

Однако это лишено смысла. 

Me.Controls - это коллекция. Динамическая. Добавление/удаление контрола - и вся нумерация поползла.

Автор: dionisiu 16.12.2006, 09:39
Akina, я просто не знал. Тем более, что в таком случае нужен массив имён "ИмяНужногоКонтрола" и вложенный цикл перебора.
Насчёт "лишено смысла" - полностью согласен. Особенно, при наличии возможности обращения по динамическому имени
Код

Me.Controls("Field" & Cstr(i))


Правда, для этого на форме нужно их создать с последовательными именами.
У меня в одной базе используется подобный приём.

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