Visual Basic 6. Руководство разработчика



         

Элемент управления - часть 5


Private Sub DataListl_Click()

Adodcl.Recordset.Bookmark = DataListI.Selectedltem

End Sub

Новый пункт, выбранный в списке, становится закладкой для элемента управления ADO Data. Элемент управления ADO Data возвращает соответст­вующие записи мгновенно, потому что столбцом связи элемента DataList является поле CustomerID - индекс таблицы Customers.

В проекте ADODC есть одна тонкость список компаний уже отсортирован, поэтому легко найти имя компании в элементе управления DataList. Если бы он не был отсортирован, то его нельзя было бы отсортировать с помощью элемента управления DataList, поскольку он не имеет свойства Sorted или метода Sort. Поэтому, как правило, данные, используемые для заполнении DataList, автома­тически не сортируются ADODC — приложение, отображающее несколько полей таблицы Products в базе данных NWIND, показано на рис. 18.17.

Если выполнить подобные действия для того, чтобы построить форму, отобра­жающую товары, то будет видно, что имена товаров в элементе DataList не сорти­руются. Возникает вопрос - если нельзя легко отыскать требуемую позицию в списке DataList, то имеет ли смысл использовать его вообще?

Рис. 18.17. Элемент управления DataList не используется для перемещения по записям, если его пункты не отсортированы

Пункты, заполняющие список DataList, поступают из

RecordSet, определен­ного свойством RowSource элементов (в данном случае — Adodcl). Другими словами, необходимо убедиться, что записи таблицы Products считываются из таблицы Products в желаемом порядке. Для этого измените определение свойства RecordSource объекта управления ADO Data.

1. Создайте форму, подобную изображенной на рис. 18.17.

2. Щелкните правой кнопкой мыши на элементе Adodcl и на вкладке свойств установите свойство Data Source Name в NWINDB.

3. Переключитесь на вкладку RecordSource и определите SQL-оператор Для этого установите CommandType в adCmdUnknown и введите в текстовое окно Command следующее ниже SQL-выражение.

SELECT * FROM Products ORDER BY ProductName




Содержание  Назад  Вперед