Идёт загрузка страницы...

htp://aptem.net.ru






На главную страничку учебника Visual Basic

Работа с БД через элемент Data

Элемент управления Data в Visual Basic обеспечивает возможность формировать мощные и разнообразные приложения базы данных с очень небольшим объемом программирования.

Доступ к данным с помощью элемента управления Data

Элемент управления Data реализует доступ к данным с использованием процессора базы данных Microsoft Jet. Эта технология обеспечивает доступ к базам данных многих форматов.

Процесс создания приложения базы данных с применением элемента управления Data включает следующие два шага:

  1. Добавить элемент управления Data к форме и установить свойства, специфицирующие базу данных и таблицу, из которой будут отбираться данные.
  2. Добавить к форме связанные элементы управления и установить их свойства, чтобы связать их с элементом управления Data; после этого в них могут отображаться данные.

Использование связанных элементов управления

После размещения связанного элемента управления в форме и установки его свойств в этом элементе управления автоматически отображаются данные из базы данных. Если пользователь изменяет данные в связанном элементе управления, эти изменения автоматически фиксируются в базе данных, когда пользователь перемещается на другую запись. С данными может быть связан ряд встроенных элементов управления Visual Basic, включая флажок (CheckBox), образ (Image), надпись (Label), изображение (PictureBox), текстовое поле (TextBox), простой список (ListBox), поле со списком (ComboBox) и OLE-контейнер.

На следующей иллюстрации показана примерная форма, которая содержит элемент управления Data и два связанных элемента управления:

Некоторые свойства и методы элемента управления Data

Свойство Connect

Свойство Connect определяет тип базы данных, которую требуется открыть. Это свойство может включать такие параметры домена защиты, как идентификатор пользователя и пароль.

Свойство Exclusive

Свойство Exclusive определяет, получит ли пользователь исключительное право доступа к базе данных. Если свойство Exclusive установлено в True и затем пользователь успешно открывает базу данных, никакое другое приложение не сможет открыть базу данных, пока она не будет закрыта данным пользователем.

Свойство Readonly

Свойство Readonly определяет, может ли пользователь модифицировать базу данных. Если модифицировать базу данных не планируется, более эффективно будет установить свойство Readonly в True.

Свойство Recordset

Свойство Recordset — объект, который содержит набор записей, возвращенных элементом управления Data. С этим свойством связаны свойства и методы, которые можно использовать при работе с возвращенными записями.

Свойства BOFAction и EOFAction

Эти свойства определяют, какое действие должен выполнить элемент управления Data, когда свойства BOF или EOF набора записей принимают значение True.

Например, если свойство EOFAction элемента управления Data установлено в vbAc-tionAddNew и элемент управления Data используется для перемещения ниже последней записи набора записей, будет автоматически выполнен метод AddNew, позволяющий вводить новую запись.

Метод Refresh

Метод Refresh регенерирует объект Recordset. Если в период выполнения изменяется свойство RecordSource, необходимо вызвать метод Refresh, чтобы обновить набор записей. В следующем фрагменте показано, как использовать метод Refresh:

Data1.RecordSource = "SELECT * FROM Employees " & _
"WHERE [Employee ID] = " & txtEmpID.text
Data1.Refresh

Объект Recordset

В приложении базы данных пользователи перемещаются по записям базы данных, используя кнопки элемента управления Data. Ниже показано, что "скрывается" за элементам управления Data и его кнопками.

Что такое Recordset?

Объект Recordset — весь набор записей, к которым обращается элемент управления Data. Набор записей хранится в памяти, в случае необходимости выгружаясь на диск.

Для манипулирования набором записей используется свойство Recordset элемента управления Data. Одна запись набора Recordset является текущей. Информация из текущей записи отображается в связанных элементах управления. Позицию текущей записи можно изменить, щелкнув кнопку элемента управления Data или программно в коде с помощью методов объекта Recordset.

Определение границ набора записей

Если для изменения позиции текущей записи используется программный код, необходимо определить начало и конец набора записей, контролируя свойства EOF и BOF объекта Recordset. При перемещении к записи EOF или BOF выполняется действие, установленное значением свойства BOFAction или EOFAction.

Например, можно установить EOFAction таким образом, чтобы автоматически добавлялась новая запись. Если свойство EOFAction установлено к EOF, то при перемещении к записи EOF никакого действия выполняться не будет. В случае же перемещения на одну запись до BOF или после EOF возвращается ошибка выполнения.

На следующей таблице показано, как свойства BOF и EOF определяют границы объекта Recordset (набора записей).

Ошибка
BOF или действие BOF
1 Волков
2 Глухов
3 Данилец
... ...
n Степанков
EOF или действие EOF
Ошибка

Использовать объект Recordset определенного элемента управления Data в программном коде можно через свойство Recordset элемента управления Data, как показано в следующем фрагменте:

Data1.Recordset.MoveNext ' Перемещение на следующую запись набора
If Data1.Recordset.EOF Then Data1.Recordset.MoveLast

Свойства и методы объекта Recordset

Для отбора информации из набора записей используются свойства и методы объекта Recordset. Они позволяют перемещаться по записям, добавлять, модифицировать или удалять записи.

Свойства BOF и EOF

Свойства BOF и EOF объекта Recordset указывают, установлена ли позиция текущей записи в наборе перед первой записью или после последней записи. Если в наборе записей не имеется никаких записей, то и свойство BOF, и свойство EOF — True.

Метод AddNew

Добавить новую запись к набору записей можно методом AddNew. При выполнении метода AddNew Visual Basic очищает связанные элементы управления и устанавливает для свойства EditMode элемента управления Data значение dbEditAdd.

Новая запись не будет добавлена к базе данных, пока не будет явно выполнен метод UpdateRecord или Update или пока пользователь не переместится на другую запись.

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

Sub cmdAdd_Click ()
Data1.Recordset.AddNew

Метод UpdateRecord элемента управления Data

Для сохранения текущей записи в базе данных используется метод UpdateRecord. В следующем фрагменте база данных модифицируется сохранением значений текущей записи:

Sub cmdUpdate_Click ()
Datal.UpdateRecord

Метод CancelUpdate элемента управления Data

Чтобы отменить метод AddNew или Edit и обновить связанные элементы управления данными из текущего набора записей, можно использовать метод CancelUpdate.

Например, если пользователь изменил поля на форме, но еще не модифицировал их и решил отменить изменения, метод CancelUpdate отменит операцию, обновит поля оригинальными данными из набора записей и выведет на экран текущую запись.

Ниже показано, как отменить добавление или редактирование записи:

Sub cmdCancel_Click ()
Datal.CancelUpdate

Метод Delete

Для удаления записи из базы данных используется метод Delete. Удаленная запись остается текущей, пока пользователь не перемещается на другую запись, как показано в следующем коде.

Sub cmdDelete_Click ()

Data1.Recordset.Delete
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MoveLast
End If

End Sub

Примечание: В базе данных могут быть установлены определенные правила ссылочной целостности. Например, в базе данных Nwind установлены правила, запрещающие удаление служащих, с которыми связаны заказы. Информацию относительно управления нарушениями ссылочной целостности см. в разделе "Ссылочная целостность" главы 4 "Расширенные возможности программирования доступа к данным".

На главную страничку учебника Visual Basic