Сделай Сам Свою Работу на 5

Связанный с данными элемент управления List





Элемент управления List связан с определенным столбцом RecordSet и используется как поисковая таблица, а также как таблица просмотра для упрощения передвижения по RecordSet (рис. 14).

 

Рис. 14. Приложение DBList

 

Список, приведенный на рис. 14, содержит наименование книг (поле Tile, таблица Titles, БД BIBLIO) загруженные во время запуска программы. Каждый раз, когда выбирается новый элемент, программа обновляет связанные с данными элементы управления, размешенные в форме, чтобы отобразить поля выбранной записи.

Заполнение элемента управления List выполняется свойствами RowSource и ListField. RowSourceопределяет источник (RecordSet или элемент управления Data) для начальной загрузки списка, а ListFieldопределяет поле, которое используется для заполнения списка.

Приложение DBList демонстрирует использование связанного с данными элемента управления List в качестве инструмента перемещения. Форма, показанная на рис. 14 содержит ряд полей из таблицы Titles БД BIBLIO. Создайте ее, связывая различные текстовые поля с соответствующими полями таблицы элемента управления Data, будто вы собираетесь перемещаться по списку с помощью кнопок, размещенных на элементе управления Data.



Поместите элемент управления List в форму и установите его свойство RowSource на имя элемента управления Datal, а свойство ListField - на имя поля, которое необходимо отобразить в списке. Для приложения DBList таковым является поле Title. Добавьте следующий код в обработчик события Click элемента управления List:

 

Private Sub DBList1_Click()

Data1.Recordset.Bookmark = DBList1.SelectedItem

End Sub

 

Свойство Bookmark определяет строку в RecordSet. Установка значения этого свойствавынуждает элемент управления Data переместится на определенную строку. Свойство Selectedltem (Выбранный пункт) элемента управления - это не текст, отображаемый в окне редактирования элемента управления, а закладка записи, которой принадлежит выбранное значение поля. Этот код позиционирует элемент управления Data в RecordSet и обновляет текстовые поля в форме.

7.2. Cвязанный с данными элемент управления ComboBox

Элемент управления ComboBox используется как поисковая таблица (см. ранее рассмотренное приложение Data Entry). Чтобы заполнить список элемента управления ComboBox необходимо установить свойство RowSource на элемент управления Data2(скрытый элемент), который соединен с таблицей Publishers БД BIBLIO. Свойство ListField элемента управления ComboBox - это имя поля, использующееся для заполнения списка. В приложении Data Entry это свойство установлено на поле Name таблицы Publishers. При запуске программы элемент управления ComboBox автоматически заполняется именами издателей из БД (рис. 15).



Элемент управления ComboBox имеет обычные свойства DataSource и DataField, как и другие элементы управления, связанные с данными. Необходимо, чтобы в приложении Data Entry элемент управления ComboBox функционировал следующим образом.

1. При запуске программы элемент управления заполняется именами всех издателей.

2. При перемещении по таблице Titles элемент управления ComboBox извлекает идентификаторы издателей из таблицы Titles, ищет это значение в таблице Publishers и отображает значение поля Name соответствующей записи в окне редактирования.

3. При добавлении новой записи пользователь определяет издателя книги, выбирая имя в элементе управления ComboBox, а элемент управления сообщает соответствующий идентификатор первому элементу управления Data.

 

Рис. 15. Элемент управления ComboBox в форме приложения DataEntry

Это выглядит сложно, но все встроено в элемент управления ComboBox. Нам уже известно, как реализовать первый пункт с помощью свойств RowSource и ListField. Два других пункта типичны для элементов управления, связанных с данными. Необходимо использовать окно редактирования элемента управления ComboBox как обычное текстовое поле, связанное с полем PubID таблицы Titles. Для этого выполните следующие действия.



1. Выберите элемент управления ComboBox и установите его свойство DataSource на Datal (элемент управления Data, связанный с таблицей Titles).

2. Установите свойство DataField на имя поля (РubID), которое необходимо обновить в БД.

Поле PubID отображается в элементе управления ComboBox. Но пользователь видит в ComboBox идентификаторы, а не имена.

Связанный с данными элемент управления ComboBox имеет еще одно свойство BoundColumn, которое является именем поля в его собственном RowSource и связывает поле, отображаемое в списке, с фактическим полем. Значение свойства BoundColumn должно быть индексным полем, чтобы механизм JET мог быстро его найти. Установите свойство BoundColumn на поле PubID и выполните приложение снова. На этот раз в ComboBox появится имя издателя нужной книги. Если выбрать в списке имя другого издателя, то в текущей записи сохранится идентификатор нового издателя.

С помощью свойств DataSource, DataField и BoundColumn можно использовать элемент управления ComboBox как поисковую таблицу. Это позволяет выбрать значения содержательных полей и сохранить значения ключей в БД. И все это без единой строки кода. Следует обратить внимание на то, что имена издателей не отсортированы. Связанный с данными элемент управления ComboBox не имеет свойства Sorted для автоматической сортировки элементов. В случае необходимости сортировки нужно создать новый отсортированный RecordSet и использовать его для заполнения элемента управления ComboBox.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.