Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Практикум - использование элемента DataCombo с ADO-элементом управления данными






1. Создайте новый проект. Поместите в форму элемент DataCombo и ADO-элемент управления данными. Пиктограмма ADO-элемента управления данными на панели инструментов выглядит как уменьшенная копия пиктограммы стандартного элемента управления данными, только на ней еще изображен желтый цилиндр. Это визуально указывает пользователю, что он имеет дело с информационно-ориентированным элементом. Информационно-ориентированные элементы, связанные с элементом управления данными, автоматически отображают одно или несколько полей из те­кущей записи. Элемент управления данными выполняет все операции над текущей записью. Если вы немного задержите курсор над пиктограммой, появится всплыва­ющая подсказка, сообщающая о том, что это Adodc (Элемент управления данными ActiveX Data Obiect).

 

 

2. Первое, что нужно сделать, - задать свойства ADO-элемен­та управления данными, чтобы он знал, какой набор запи­сей создавать. В ADO применяется другой подход к откры­тию источника информации. Чтобы познакомиться с ним, щелкните по ADO-элементу управления данными и от­кройте окно Properties. Поскольку ADO может подключаться к любому источнику информации, необходимо задать строку соединения; она описывает источник и сообщает ADO, как до него добраться.

3. Щелкните по свойству ConnectionString, и в правой половине таблицы появится кнопка с многоточием. Щелкните по ней - пусть Visual Basic создаст строку соеди­нения с источником данных:

 

 

 

4. Щелкните по кнопке Build - появится первая из форм, которые предстоит заполнить. Поскольку вы собирае­тесь подключиться к базе данных Access, выберите Microsoft Jet 3.51 OLE DB Provider (это словосочетание описывает родовой тип базы данных, о чем будет рассказано позже). Щелкните по Next >.

5. Далее вы сообщаете, какую базу данных от­крывать. Щелкните по кнопке с многоточи­ем и выберите Biblio.mdb. Поскольку база не защищена паролем, оставьте в поле User Name (Имя пользователя) значение по умол­чанию и поднимите флажок Blank Password (Пустой пароль). Так как пароль не требуется, этого достаточ­но. Имя пользователя Admin разрешает пол­ный доступ к базе данных. Но если бы база данных была защищена паролем, в диало­говом окне надо было бы ввести как имя пользователя, так и пароль. Эти сведения были бы включены в строку соединения.

Многие программисты не знают, что в Jet система защиты за­действована всегда. Всякий раз, когда программа пытается что-то сделать с базой данных, Jet проверяет, есть ли у пользователя полномочия, необходимые для совершения операции. Поскольку никакого окна или сообщения, относящегося к вопросам безопас­ности, не появляется, пользователи даже не осознают, что их действия все время контролируются. Принимаемый по умолча­нию учетный регистр пользователя Admin обеспечивает пол­ный доступ ко всем объектам базы данных. Следовательно, по умолчанию вы можете делать все, что захотите, поэтому Jet ничего и не запрещает. Тотальный контроль безопасности всегда имеет смысл. Ведь это означает, что нельзя открыть базу дан­ных в обход механизма защиты - нет никакого «черного хода». Если вы не активировали пароли для своей базы данных, механизм защиты работает, визуально никак не проявляя себя.

 

6. Теперь проверим возможность соединения с указанной базой данных. Щелкните по кнопке Test Connection. Если все нормально, на экране должно появиться окно с сообщением об успешном соединении:

 

7. Щелкните по вкладке All на странице свойств. В окне отображается вся информа­ция, необходимая ADO-элементу управления данными. Большая часть свойств имеет значения по умолчанию. Опытные пользователи могут изме­нить любое значение.

8. Закройте диалоговое окно и вместе с ним страницу свойств, щелкнув по кнопке ОК. Если теперь посмотрите на свойство Connection String (Строка соедине­ния), то увидите, что ему присвоено значение, которое вы определили в предыдущем шаге.

9. Теперь щелкните по свойству RecordSource ADO-элемента управления данными. Щелкните по кнопке с многоточием, чтобы открыть страницу свойств RecordSource. Поскольку вы собираетесь извлекать данные из таблицы, надо выбрать из списка Command Туре (Тип команды) пункт 2 – adCmdTable.

10. Позже для формирования запросов будет использоваться SQL, и тогда надо будет вы­бирать пункт 1 - adCmdText. В результате вы сможете поместить в поле Command Text (SQL) текст любого SQL-запроса. А пока вы просто выбираете все записи из таб­лицы, поэтому укажите ее в выпадающем списке, который содержит имена всех таб­лиц, имеющихся в базе Biblio.mdb. Выберите таблицу Titles и щелкните по кнопке ОК.

11. Итак, вы задали параметры соединения между базой данных и ADO-элементом уп­равления данными, благодаря чему сможете построить набор записей. Теперь со­средоточимся на элементе, который будет отображать данные - DataCombo. Вернитесь к форме и откройте окно Properties для добавленного ранее элемента DataCombo. ADO-элемент управления данными выполнит всю работу по заполне­нию DataCombo сведениями, вы должны лишь предоставить достаточно информа­ции для его действий. Щелкните по вкладке Categorized, в которой представлены различные категории свойств, относящихся к отображению данных. Щелкните по свойству DataSource и выберите из выпадающего списка Adodcl - имя только что созданного ADO-элемента управления. Тем самым вы сообщаете элементу DataCombo, с каким элементом управления данными он связан (не забывайте, что в форме может быть несколько таких элементов).

12. Теперь все готово, чтобы связать элемент DataCombo с ADO-элементом управления данными. Установите свойство RowSource равным Adodcl (единственно возможный выбор). Затем щелкните по свойству ListField и выберите из выпадающего спис­ка Title. Когда из списка ListField выбирается новое значение, Visual Basic автоматически обновляет свойство BoundColumn. Свойство BoundColumn позволяет связать две таблицы для отображе­ния в одном элементе DataCombo. Пока не заду­мывайтесь о том, как все происходит. Отметьте для себя главное - с помощью указанного свой­ства можно одновременно обновлять две таблицы. Скоро об этом будет рассказано подробнее. Установите свойство Text равным пустой строке, чтобы не показывать название элемента управления на экране.

13. Уже можно полюбоваться на плоды своих трудов. Запустите програм­му. Затем откройте выпадающий список, в котором присутствует более 8000 строк, помещенных туда элементом управления данными

 

Введите какую-нибудь букву в поле над списком. Если, напри­мер, вы набрали «С», список прокрутится и покажет первую строку, начинающуюся на «С». Таким образом, элемент управления ищет нужную информацию автомати­чески, а когда в списке больше 8000 элементов, это очень полезно! А если бы вы за­хотели расположить строки в списке по алфавиту, пришлось бы задать SQL-запрос, осуществляющий сортировку.

Ниже рассказано, как это делается. Сейчас очень подходящий момент продемонстрировать богатые возможности эле­мента управления. Откройте диалоговое окно Properties для ADO-элемента управле­ния данными и выберите свойство RecordSource. Щелкните по кнопке с многоточием:

 

14. Выберите из списка Command Type значение 1 - adCmdText. Это позволит задать в -качестве команды SQL-запрос. Заметьте, что запись в поле Table or Store Procedure Name (Название таблицы или хранимой процедуры) теперь нельзя изме­нить, а поле Command Text стало доступным. Введите в него следующую команду

 

SELECT * FROM Titles ORDER BY Title

 

15. Щелкните по кнопке ОК. Все названия выстроились в алфавитном порядке. Но обратите внимание: названия, начинающиеся с 1-2-3, оказались раньше тех, что начинаются с буквы А. Цифра 1 имеет ASCII-код 49, а буква А - код 65. Так что 1 идет раньше А и, кстати, прописные буквы - раньше строчных. Как вы теперь понимаете, знание принципов сортировки весьма полезно для представления информации пользователю.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.