Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Практикум - использование элемента 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 идет раньше А и, кстати, прописные буквы - раньше строчных. Как вы теперь понимаете, знание принципов сортировки весьма полезно для представления информации пользователю.
|