Чтение онлайн

на главную - закладки

Жанры

Интернет-журнал "Домашняя лаборатория", 2007 №4
Шрифт:

Для перемещения указателя текущей записи на первую или последнюю записи используются методы MoveFirst и MoveLast:

Data1.Recordset.MoveFirst

Data1.Recordset.MoveLast.

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

использовании метода Move для перемещения указателя за пределы файла Visual Basic генерирует ошибку.

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

Do While Data1.Recordset.EOF = False

Data1.Recordset.MoveNext код для работы с текущей записью

Loop

Data1.Recordset.MoveLast

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

Методы MoveNext и MovePrevious перемещают указатель на следующую и предыдущую записи в наборе записей. Обычно эти методы используются для последовательного просмотра содержимого полей базы данных.

Следующий фрагмент кода загружает два списка и заполняет их названиями книг и годами их публикации из таблицы TITLES базы данных BIBLIO.MDB.

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

Data1.RecordSource="Titles"

Data1.Refresh

Do Until Data1.Recordset.EOF Entry = Data1.Recordset("Title")

List1Addltem Entry

Entry = Data1.Recordset("Year Published")

List2.AddItem Entry

Data1.Recordset.MoveNext

Loop

Вы также можете применить Move метод с целочисленным аргументом для перемещения указателя текущей записи на определенное количество строк вперед или назад (в зависимости от знака аргумента) от текущего положения указателя или от положения, сохраненного с использованием закладки. Следующий пример показывает, как переместить указатель текущей записи на пять строк вперед, начиная от положения, определенного свойством MyBookmark:

Data1.Recordset.Move 5, MyBookmark.

Для перемещения по набору записей также можно использовать такие свойства объекта Recordset, как AbsolutePosition и PercentPosition.

Перемещение по набору записей с помощью закладок

Использование закладки (bookmark) позволяет сначала сохранить указатель на текущую запись и затем, из любого места базы данных непосредственно позиционировать его на этой записи. Свойство Bookmark объекта Recordset содержит указатель на запись. Установкой свойства Bookmark, равному значению сохраненного ранее указателя, вы можете прямо позиционировать указатель на требуемую запись.

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

Dim MyBookmark As Variant

MyBookmark = Data1.Recordset.Bookmark

Data1.Recordset.MoveLast

Data1.Recordset.Bookmark=MyBookmark.

Применение Find-методов

для поиска записи

Ранее было показано, как осуществлять перемещение по базе данных для просмотра записей. Однако большинству пользователей необходимо иметь возможность не только просматривать запись за записью в базе данных, но и осуществлять поиск записи, отвечающий какому-либо условию. Чтобы найти определенную запись, можно воспользоваться методами Find для объектов — наборов записей типа dynaset и snapshot и методом Seek — для наборов записей типа table.

Методы Find используются для поиска в наборах записей типа dynaset и snapshot. В Visual Basic поддерживается четыре метода Find:

Метод FindFirst осуществляет поиск первой записи, удовлетворяющей условию.

Метод FindLast осуществляет поиск последней записи, удовлетворяющей условию.

Метод FindNext осуществляет поиск следующей записи, удовлетворяющей условию.

Метод FindPrevious осуществляет поиск предыдущей записи, удовлетворяющей условию.

При использовании любого из Find методов необходимо определить условие поиска. Обычно условием поиска является равенство имени поля какому-нибудь значению. Например, следующий фрагмент кода показывает, как найти в таблице Titles первую запись, в которой поле AU ID равно пяти:

Data1.Recordset.FindFirst "AU_ID=5".

Построим простое приложение для просмотра таблицы Titles базы данных BIBLIО2.MDB с возможностью простого поиска записи. Для этого:

1. Создайте новый проект и разместите на форме объект Data, объект DBGrid и две командные кнопки, как показано на рис. 5.1.

Рис. 5.1. Главное окно приложения.

2. Установите следующие свойства для объектов Data и DBGrid:

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

Data1.RecordSource=Titles

DBGrid1.DataSource=Data1.

3. Как обычно, предусмотрим возможность завершения работы приложения, определив обработку нажатия кнопки “Выход” следующим образом:

Private Sub Command2_Click

Unload Me

End Sub.

4. Для загрузки и вывода на экран окна поиска записи добавьте в процедуру обработки нажатия кнопки “Поиск” следующую строку:

Private Sub Commandl_Click

Form2.Show

End Sub

5. Добавьте в проект новую форму и разместите на ней текстовое окно, метку и две командные кнопки, как показано на рис. 5.2.

Рис. 5.2. Окно поиска записи.

Поделиться:
Популярные книги

Эволюционер из трущоб. Том 9

Панарин Антон
9. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 9

Чайлдфри

Тоцка Тала
Любовные романы:
современные любовные романы
6.51
рейтинг книги
Чайлдфри

Царь поневоле. Том 1

Распопов Дмитрий Викторович
4. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Царь поневоле. Том 1

Белые погоны

Лисина Александра
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Белые погоны

Прапорщик. Назад в СССР. Книга 7

Гаусс Максим
7. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прапорщик. Назад в СССР. Книга 7

Рождение

Ланцов Михаил Алексеевич
1. Некромаг
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Рождение

Скандальная свадьба

Данич Дина
1. Такие разные свадьбы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Скандальная свадьба

Неправильный лекарь. Том 1

Измайлов Сергей
1. Неправильный лекарь
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неправильный лекарь. Том 1

Город Богов 2

Парсиев Дмитрий
2. Профсоюз водителей грузовых драконов
Фантастика:
юмористическое фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Город Богов 2

Око василиска

Кас Маркус
2. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Око василиска

Газлайтер. Том 4

Володин Григорий
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 4

На границе империй. Том 2

INDIGO
2. Фортуна дама переменчивая
Фантастика:
космическая фантастика
7.35
рейтинг книги
На границе империй. Том 2

Назад в ссср 6

Дамиров Рафаэль
6. Курсант
Фантастика:
попаданцы
альтернативная история
6.00
рейтинг книги
Назад в ссср 6

Меч Предназначения

Сапковский Анджей
2. Ведьмак
Фантастика:
фэнтези
9.35
рейтинг книги
Меч Предназначения