Читаем Интернет-журнал "Домашняя лаборатория", 2007 №4 полностью

Если вы намереваетесь редактировать содержимое базы данных, то должны быть уверены, что это можно делать. При использовании наборов записей типа snapshot, вы не можете вносить изменения в базу данных по определению. Если вы не уверены, что содержимое базы данных можно редактировать, можете проверить выполнение следующих условий:

Свойства Updatable у базы данных, набора записей и поля должны быть установлены в True.

Если какое-нибудь из этих свойств установлено в False, то соответствующие данные доступны только для чтения.

Вы должны использовать объект управления данными, у которого свойство ReadOnly установлено в False.

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

If Data1.ReadOnly = True or Data1.Database.Updatable = False Or _

Data1.Recordset.Updatable = False Then

MsgBox "Эти данные не могут быть изменены"

End If

Для того, чтобы определить, допускает ли возможность редактирования определенное поле базы данных, надо проверить бит dbUpdatableField у свойства Attributes. Если этот бит содержит 0, то содержимое поля изменить невозможно. В противном случае редактирование поля допускается.

В следующем примере показано, как проверить возможность редактирования поля "Author":

If Data1.Recordset.Fields("Author").Attributes And _

dbUpdatableField = 0 Then

MsgBox "Это поле не может быть изменено"

End If



Добавление новой записи


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

Для того, чтобы добавить новые записи в набор записей надо проделать следующие действия:

1. Добавить новую пустую запись с помощью метода AddNew объекта Recordset. При этом указатель текущей записи сохраняется и затем перемещается на новую запись.

2. Определить новые значения в полях добавленной записи.

3. Сохранить сделанные изменения использованием метода Update. При этом указатель текущей записи принимает значение, которое у него было перед использованием метода AddNew.

Следующий фрагмент кода показывает, как с помощью программного кода добавить новую запись в таблицу Titles.

Data1.DatabaseName = "BIBLIO.MDB"

Data1.RecordSource = "Titles"

Data1.Refresh

Data1.Recordset.AddNew 'Добавить новую запись

Data1.Recordset("Title") = "Visual Basic" ' Установить значения полей

Data1.Recordset("Year Published") = "1996"

Data1.Recordset("AU_ID") = 37 Data1.Recordset("ISBN") = "111-111-11-11"

Data1.Recordset("PubID") = 43 Data1.Recordset.Update ' Сохранить изменения



Редактирование текущей записи


Для того чтобы изменить данные в вашей базе данных, вы должны сначала сделать запись, подлежащую изменению, текущей записью. Это можно просто сделать при помощи одного из методов Move или при помощи кнопок со стрелками на объекте управления данными. Затем можно провести необходимые изменения содержимого связанных объектах управления. Чтобы сохранить сделанные изменения, достаточно просто переместить указатель текущей записи на любую другую запись или использовать метод Update.

Таким образом, для редактирования текущей записи надо сделать следующее:

1. Позиционируйте указатель текущей записи на запись, которую вы хотите редактировать.

2. Определите новые значения в полях текущей записи.

3. Используйте метод Update или любой из методов Move

Следующий пример показывает, как с помощью программного кода изменить содержимое поля PubID в первой записи таблицы Titles. Обратите внимание, что вы можете изменить данные либо в самом наборе записей, либо в связанном объекте управления:

Data1.DatabaseName = "C: \VB5\BIBLIО2.MDB"

Data1.RecordSource = "Titles"

Data1.Refresh

Data1.Recordset("PubID") = "48"

TxtPub.Text = "Visual Basic"

Data1.Recordset.Update



Удаление записей


Чтобы удалить запись, установите указатель на требуемую запись и примените метод Delete объекта Recordset. Удаление одной записи нам уже встречалось при изучении свойства Recordset объекта управления данными. Чтобы удалить группу записей, надо повторить подобные действия необходимое количество раз. В следующем примере из таблицы Titles базы данных BIBLIO.MDB удаляются все записи, у которых поле “Year Published” содержит величину меньшую, чем 1989.

Data1.DatabaseName="C: \VB5\BIBLIO.MDB"

Data1.RecordSource="Select * from Titles where [Year Published]<1989"

Data1.Refresh

Do While Data1.Recordset.EOF = False

Data1.Recordset.Delete

Data1.Recordset.MoveNext

Loop

В этом примере при каждом проходе тела цикла используется метод MoveNext для перемещения указателя на следующую запись. Вам необходимо использовать этот метод, так как после удаления текущая запись становится недопустимой (invalid) и любая попытка доступа к ней вызовет ошибку.

Использование пары методов Delete и MoveNext не является единственным способом удаления сразу нескольких записей из базы данных. Для аналогичных целей можно использовать соответствующий SQL-запрос. Например, вместо приведенного выше кода можно использовать аналогичный по своему действию SQL-запрос:

DELETE FROM Titles WHERE [Year Published] < #1/1/1989#.

Перейти на страницу:

Похожие книги

Занимательная электроника
Занимательная электроника

Скрасить свой досуг можно разными способами. Электронные устройства, созданные своими руками, питающиеся от «безопасного» напряжения 9-15 Вольт, не только успешно замещают китайские «гаджеты», но и позволяют культивировать собственную творческую жилку, преобразовывая свободное время досуга в весьма полезное развивающее занятие.Перед вами хорошо структурированная книга, разделенная на три тематические главы самого «свежего» радиолюбительского опыта, позволяющая нешаблонно решить задачи, с которыми мы ежедневно сталкиваемся в быту. Особое, отличительное назначение книги в описании проверенных, именно практических, легко повторяемых схем и устройств; в каждой главе имеется специальный раздел – описание вариантов практического применения предложенных к повторению разработок.Книга для любителей радио всех возрастов, лиц любых профессий, склонных к занятиям техническим творчеством и широкого круга читателей, ценящих свой досуг и новые перспективные идеи его заполнения. Эта книга – для вас.

Андрей Петрович Кашкаров

Сделай сам / Хобби и ремесла / Дом и досуг