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

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

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#.

Причем, такой подход оказывается более эффективным, чем применение в цикле пары методов Delete и MoveNext.

Урок 6

Связанные с данными элементы управления

Применение связанных с данными элементов управления — Data-bound Controls уже кратко обсуждалось в уроке, посвященном работе с Data Control. Связанные элементы управления служат для отображения на экранной форме содержимого записей из таблиц базы данных и всегда используются только вместе с объектом Data.

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

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

В Visual Basic 5 в качестве связанных с данными элементов управления может использоваться целый ряд обычных элементов управления:

Text box — текстовое окно, Label — метка, Check box — контрольный индикатор, Image — изображение, Picture box — графическое окно, List box — список, Combo box — комбинированное окно, OLE container control — OLE-контейнер.

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

Кроме обычных элементов управления для работы с базами данных, пятая версия Visual Basic поддерживает несколько ActiveX объектов:

Data-bound list box — связанный с данными список,

Data-bound combo box — связанное с данными комбинированное окно,

MSFlexGrid — сетка,

Data-Bound Grid (DBGrid) — связянная с данными сетка,

MaskedEdit — окно редактирования с маской,

RichTextBox — улучшенное окно редактирования.

Все эти объекты, за исключением MaskedEdit и RichTextBox позволяют отображать на экране целые группы записей в виде списков или таблиц. А применение DBGrid позволяет настолько повысить функциональность разрабатываемых приложений, что об этом будет специальный разговор.

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

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