В начало
Статьи
Библиотека
Разное

Вот здесь - новый сайт, заходите немедленно!

kift - Коллекция Интересных Фактов и Теорий

А тут можно поболтать и побухтеть, милости просим:

kift - неизданное

Самоучитель Visual Basic

9. Программирование формы для управления данными
10. Обработка ошибок. Условные операторы
11. «Сборка» проекта
12.  Создание формы для вывода справки
13. Добавление окон-заметок. Наборы и циклы
14. Циклы VB
15. Основы отладки программ. Пользовательская процедура

8. Визуальное редактирование формы для управления данными.

В ходе этого занятия Вы продолжите практическое освоение объектов VB, создавая при этом новый компонент будущей программы – форму для работы с данными. Кроме того, Вы увидите, как можно использовать элемент управления, не входящий в состав стандартного проекта. В завершении занятия Вы сможете связывать элементы управления с базой данных.

Вы, конечно, можете работать с БД с помощью VisData, Access или какого-нибудь другого процессора БД, но каждый из них, обладая долей универсальности, оказывается недостаточно удобным при работе с конкретной БД. VB предоставляет возможность проектировать и создавать собственные формы для работы с БД. Именно этим мы и займемся сейчас.

Сначала спроектируем форму для работы с БД.

  • Так как наша БД состоит из двух несвязанных между собой таблиц, каждая запись в которых вполне самостоятельна, будет логично сделать две формы для работы с БД.

В настоящем занятии мы создадим одну из них.

Рассмотрим структуру формы для таблицы Phones.

  • В таблице есть два поля для размещения записей – поле Names и Phone.

  • Эти поля должны синхронизироваться, то есть одному полю Names вполне однозначно соответствует поле Phone – и наоборот.

  • Следует предусмотреть возможность:

    • вносить в таблицу новые значения,

    • удалять ненужные записи,

    • просматривать сразу часть таблицы (для удобства).

  • Возможность сортировки и отбора записей по условиям мы реализовывать не будем, но, поверьте, это не так сложно, как может показаться. Если Вы успешно пройдете этот курс, то у Вас будут все предпосылки для решения этой задачи.

Подготовьтесь к работе (то есть запустите VB и откройте Ваш проект).

А теперь – создаем форму для работы с таблицей Phones.

  • Выполните команду меню ProjectAdd Form...(ПроектДобавить форму).

  • В появившемся окне выполните double-click на значке с подписью Form.

  • Переименуйте появившуюся форму (свойство Name) в frmPhoneBook (вспомните, это мы делали раньше).

  • Присвойте форме заголовок (свойство Caption) «Телефонная книжка» (без кавычек).

Не забудьте, сейчас Вы работаете с новой формой frmPhoneBook.

  • Измените свойство Icon – выберите любой подходящий значок.

При сохранении проекта не забудьте указать, где будет находиться файл созданной формы – в Вашем каталоге C:\VB Begin.

Обратите внимание, что в окне Project Browserпоявился значок вновь образованной формы.

А теперь добавим к форме контрол, изначально предназначенный для работы с БД. Этот контрол так и называется – Data (Данные, не путайте с Date – Дата, в смысле дня и месяца). Этот контрол входит в стандартный набор контролов VB, и Вы можете его найти на панельке ToolBox по появляющейся при наведении курсора на значок подсказке с надписью « Data».

Добавьте на форму контрол Data.

  • Переименуйте его в dtPhoneBook.

  • Добавьте на эту же форму два контрола TextBox (ТекстовоеПоле), назовите их txtNames и txtPhone.

  • Добавьте две метки- Label, назовите их как хотите, присвойте им заголовки- Caption « Имя:» и « Телефон:» (без кавычек, но с двоеточиями).

  • Добавьте три кнопки- CommandButton, назовите их cmdAdd (заголовок «Добавить» – без кавычек), cmdUpdate («Обновить»), cmdDelete («Удалить»).

Как уже было сказано, в составе VB имеется набор стандартных элементов управления – кóнтролов, выполняющих те или иные функции. Однако VB позволяет подключать к проекту любые элементы, предназначенные для нестандартных целей.

Кроме того, Вы можете самостоятельно создавать такие элементы, хотя, к сожалению, описание этого процесса выходит за пределы нашего курса.

Добавление элемента к проекту производится путем выбора этого элемента в диалоговом окне Components (Компоненты).

Добавим к проекту контрол для просмотра одновременно нескольких записей таблицы.

  • Выполните команду меню ProjectComponents... (Компоненты).

Появится окно:

   

В списке вкладки Controls окна Components, показанной на рисунке, Вы можете найти все контролы, установленные в Вашей системе. Кнопка Browse... (Обзор…) позволит Вам найти незарегистрированные контролы. При установке флажка Selected Items Only (Только Выбранные Компоненты) в списке будут отображаться только контролы, задействованные в текущем проекте – это удобно, чтобы не искать их в числе прочих.

В том же списке вкладки Controls окна Components перейдите на строку с надписью « Microsoft Data Bound Grid Control» (строку будет завершать номер, который может варьировать. У нас это номер 5.0).

Название контрола означает «Связанный с Данными Элемент управления – Сетка, произведенный фирмой Microsoft».

  • Обязательно установите флажок в левой части строки:
   
  • Щелкните OK.

Обратите внимание на ToolBox. Если Вы все сделали правильно, на нем появится новый значок. Если не появился – повторите процедуру добавления контрола заново и внимательно. Установили ли Вы флажок в строке с названием контрола?

На ToolBox появится значок с подсказкой «DBGrid»:

   
  • Добавьте его на форму , назовите dbgrPhoneBook.

Внимание! Если у Вас возникли проблемы с добавлением этого элемента на форму, и появляется сообщение об отсутствии лицензирования элемента, следует сделать следующее:

  • Щелкните по этой ссылке, чтобы скачать элемент DBGrig.

  • Откройте Проводник Windows

    Если Вы работаете в Windows 95, 98 или Millenium - скопируйте скачанный файл в каталог C:\Windows\System;

    если Вы - обладатель системы Windows NT4, 2000 - в каталог C:\WINNT\System32;

    а если на Вашей машине установлена Windows XP - в каталог C:\Windows\System32

  • после чего скачайте файл DBGrid.reg (щелкните на ссылке),

  • найдите этот файл при помощи Проводника Windows,

  • выполните double-click на значке этого файла,

  • в появившемся окне щелкните OK.

Должно появиться окно с сообщением об успешном внесении данных из файла DBGrid.reg в реестр.

  • Щелкните OK.

Больше проблем быть не должно. Если же Вы не справились с регистрацией элемента – обратитесь к Вашему системному администратору и покажите ему этот текст.

Разместите контролы на форме так:

   

Для работы с созданным Вами файлом БД следует подключить к БД элемент управления Data. Это делается путем соответствующей установки свойств элемента.

Внешний дизайн формы готов. Теперь займемся прибавлением функциональности. Самый главный контрол на форме – dtPhoneBook, от него будут зависеть все остальные (Мы намеренно не будем уточнять, что это за элемент, чтобы Вы интенсивнее вспоминали и запоминали материал).

Первым шагом следует связать dtPhoneBook с файлом созданной нами БД.

  • Перенесите на элемент dtPhoneBook фокус (один раз щелкните на нем, чтобы изображение контрола на форме оказалось окруженным маркерами).

  • Перейдите в окно Properties.

  • Измените свойство DatabaseName (ИмяБазыДанных) элемента dtPhoneBook так, чтобы оно указывало на нашу БД (то есть, на файл C:\VB Begin\Organizer.mdb).

    • При выборе строки с этим свойством появится кнопочка с «троеточием». При нажатии на нее появится диалоговое окно;

    • в этом окне перейдите в каталог C:\VB Begin;

    • сделайте double-click на файле Organizer.mdb.

Если Вы все сделали правильно, в строке свойства DatabaseName появится строка, указывающая путь к Вашей БД.

Вышеописанные  действия называются подключением к БД.

  • Иначе говоря, для подключения элемента управления к базе данных его свойство DataBaseName должно указывать на файл базы данных.

  • Очевидно, что, если элемент не имеет свойства DataBaseName, то к базе данных его таким способом не подключить (есть и другие способы, но мы их рассматривать не будем).

Так как созданная Вами БД содержит несколько таблиц, следует явно указать, с какой именно таблицей будет работать элемент.

  • Это делается с помощью установки свойства RecordSource (ИсточникЗаписей) элемента.

В окне Properties перейдите на строку со свойством RecordSource (ИсточникЗаписей).

  • Появится кнопочка со «стрелкой-вниз».

  • При нажатии на нее появится список, содержащий перечень таблиц БД, подключенной к элементу.

  • Выберите строку с надписью PhoneBook (т. к. именно к этой таблице мы будем подключать нашу форму).

В основном работа с контролом закончена (потом мы произведем еще несколько действий, но они уже не необходимы).

Многие контролы обладают способностью связываться с элементами управления данными, из стандартных элементов это: TextBox, CheckBox, Image, PictureBox и Label. Есть контролы, специально предназначенные для связывания с элементами управления данными – DBGrid, DBList, DBCombo. Последняя, 6-я версия VB включает еще несколько очень мощных контролов для работы с БД.

Если бы мы нуждались лишь в выводе значений из БД, то можно было бы обойтись элементами-метками – они меньше, и программа была бы компактнее. Но нам надо иметь возможность вносить свои данные, метки этого не позволяют.

Для ввода данных в общем случае используют контрол TextBox (ТекстовоеПоле). Безусловно, Вы уже видели подобные элементы в других программах. При переходе на него появляется мигающая вертикальная черта – «курсор ввода». Вы можете вводить строки с клавиатуры, выделять введенные данные с помощью мыши, манипулировать с буфером обмена. Ограничения этого контрола – текст может быть длиной до 2 кБ (а при установленном свойстве MultiLine – до 32 кБ), текст выводится только одним шрифтом, он не может включать картинки. Для наших целей эти ограничения не критичны, нам этот контрол вполне подходит.

Задействуем же текстовые поля, связав их с БД.

  • Перенесите фокус на контрол txtNames.

  • В окне Properties перейдите на строку свойства DataSource (ИсточникДанных). В списке выберите имя нашего контрола управления данными dtPhoneBook.

В общем случае на форме может быть много контролов управления данными (Data), каждый из которых может быть связан с одной таблицей БД. Поэтому нам надо явно указывать, с которым из элементов Data мы будем работать.

  • Перейдите на строку свойства DataField (ПолеДанных).

  • В списке выберите имя поля Names.

Элемент txtNames подключен к элементу управления данными dtPhoneBook (который, в свою очередь, связан с таблицей PhoneBook базы данных C:\VB Begin\Organizer.mdb), к полю этой таблице под названием Names.

Были использованы свойства:

  • DataBaseName и RecordSource элемента Data;

  • и DataSource и DataField связанного элемента txtNames.

При этом свойство DataBaseName определяет имя файла базы данных – C:\VB Begin\Organizer.mdb;

  • свойство RecordSource – имя таблицы, связанной с элементом DataPhoneBook;

  • свойство DataSource определяет элемент Data, с которым связано текстовое поле (или другой элемент), здесь – dtPhoneBook;

  • и, наконец, свойство DataField определяет поле в таблице БД, с которым связан этот элемент – здесь Names.

Точно так же свяжите контрол txtPhone с полем Phone.

Теперь свяжем с БД контрол – Сетку.

  • Перенесите фокус на контрол dbgrPhoneBook.

  • Измените его свойство DataSource так, чтобы оно указывало на контрол dtPhoneBook.

Связывание закончено.

Вопросы

  1. Какие элементы следует связывать с элементом Data? Опишите процесс связывания.

  2. Как связать элемент управления данными с файлом БД?

  3. Для чего и как используются свойства DataBaseName и RecordSource?

Задания

  1. Законспектируйте раздел.

Data DBGrid
Hosted by uCoz