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

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

Жанры

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

If Combo1.Listlndex = Empty Then strl = "select * From titles"

End If

Data1.RecordSource = strl

Data1.Refresh

End Sub

8. Запустите проект на выполнение.

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

которого будет служить результат выполнения следующего SQL-запроса select * From titles order by [Year Published].

На рис. 4.3 представлена библиографическая информации из базы данных BIBLIО2.MDB, упорядоченная по году издания книги.

Рис. 4.3. Библиографические данные, упорядоченные по году издания книги.

Методы объекта Data

• Refresh

После изменения свойства объекта Data во время выполнения приложения, ядро системы управления базами данных Jet database engine сразу не меняет ранее уже установленные свойства. Вообще говоря, просто изменить в программе одно установленное свойство на другое невозможно. Необходимо заново инициализировать объект управления данными, который затем автоматически создаст другие объекты доступа к данным (например, DataBase или Recordset) с уже новыми свойствами. Для этого необходимо применить метод Refresh. Таким образом, метод Refresh используется для того, чтобы во время выполнения приложения переинициализировать объект управления данными, но уже с новыми свойствами.

Синтаксис: Data1.Refresh.

После применения метода Refresh указатель текущей записи устанавливается на первой записи в наборе, созданном объектом Data.

• UpdateControls

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

Синтаксис:Data1.UpdateControls.

Хорошей иллюстрацией использования метода UpdateControls является предоставление пользователю возможности подтвердить сделанные изменения содержимого текущей записи. Для этого необходимо вмешаться в процедуру обработки события Validate объекта Data.

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

Private Sub Data1_Validate(Action As Integer, Save As Integer)

If Save = False Then Exit Sub

End If

If MsgBox("Coxpaнить сделанные изменения",vbYesNo,"","",0)=vbNo Then

Data1.UpdateControls

Exit Sub

End If

End Sub

2. Запустите приложение.

3. Измените содержимое какого-нибудь связанного текстового окна, например, года издания, и, используя кнопки перемещения по набору записей, измените положение текущей записи. В результате, на экран

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

4. Закройте приложение.

• UpdateRecord

Метод UpdateRecord сохраняет в базе данных содержимое текущей записи, отображаемое в связанных элементах управления.

Синтаксис:Data1.UpdateRecord.

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

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

1. Откройте проект, использованный для демонстрации метода UpdateControls.

2. Разместите на форме командную кнопку, измените ее свойство Caption на “Обновить данные” и добавьте следующий код в процедуру обработки события Click:

Private Sub Command2_Click

Data1.UpdateRecord End Sub

3. Запустите проект. Отредактируйте содержимое связанных элементов управления и нажмите кнопку “Обновить данные”. Теперь, сделанные вами изменения сохранены в базе данных.

События

• Error

Событие Error происходит, когда при использовании объекта Data возникает какая-либо ошибка доступа к данным, причем в это время программный код, написанный программистом не выполняется. Примером такой ситуации может быть случай, когда база данных, определенная свойством DatabaseName объекта Data, не найдена. Здесь не выполняется написанного программистом кода и, поэтому, обработка такого рода ошибки невозможна с использованием стандартных средств Visual Basic. К счастью, в этом случае происходит событие Error, в процедуру обработки которого программист имеет полное право вмешаться.

Синтаксис: Private Sub Data1 Error (DataErr As Integer, Response As Integer)

Параметр DataErr содержит код ошибки. Различные варианты действия после возникновения ошибки определяются параметром Response, и приведены в следующей таблице:

Постоянная • Значение • Действие

vbDataErrContinue • 0 • После возникновения ошибки приложение продолжает выполняться.

vbDataErrDisplay • 1• После возникновения ошибки появляется диалоговое окно с соответствующим сообщением. Этот вариант действия установлен по умолчанию.

1. Откройте любой проект и измените свойство DatabaseName объекта управления данными Data1 на С: \BIBLIO.MDB.

2. Запустите проект и убедитесь, что на экране появляется сообщение об ошибке.

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

Private Sub Data1_Error(DataErr As Integer, Response As Integer)

Response = vbDataErrContinue

End Sub

4. Запустите приложение. В этом случае сообщения об ошибке не возникает.

• Reposition

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

Огненный князь 6

Машуков Тимур
6. Багряный восход
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 6

Лорд Системы 12

Токсик Саша
12. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 12

Последний Паладин. Том 4

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

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый

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

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

Сирота

Шмаков Алексей Семенович
1. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Сирота

Бастард Императора. Том 2

Орлов Андрей Юрьевич
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 2

Сердце Дракона. Том 10

Клеванский Кирилл Сергеевич
10. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.14
рейтинг книги
Сердце Дракона. Том 10

На границе империй. Том 7. Часть 2

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Государь

Кулаков Алексей Иванович
3. Рюрикова кровь
Фантастика:
мистика
альтернативная история
историческое фэнтези
6.25
рейтинг книги
Государь

Релокант

Ascold Flow
1. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Релокант

Безнадежно влип

Юнина Наталья
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Безнадежно влип

Магия чистых душ 3

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Магия чистых душ 3

Первый среди равных

Бор Жорж
1. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных