Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция по Ms Access.doc
Скачиваний:
121
Добавлен:
19.05.2015
Размер:
1.86 Mб
Скачать

Глава 18. Применение объекта Debug

Объект Debug полезен на этапе проектирования и отладки приложения. Он содержит два метода- Print и Assert. Метод Print позволяет отобразить содержимое элемента данных в окне отладки Immediate ( окно вызывается нажатием клавиш CTRL+G), a Assert даёт возможность приостановить выполнение программ в том случае, если выражение типа Boolean, переданное ей в качестве параметра, даёт в результате вычисления значение False.

Пример:

Просмотреть все записи в объектe Recordset.

Для перебора всех записей в наборе применим цикл Do. Переход к следующей записи используем метод MoveNext.

1.Создадим в конструкторе форму без всяких элементов управления.

  1. По событию ОТКРЫТИЕ формы пишем программный код:

3.Открыть форму и нажать CTRL+ G для вызова окна Immediate. В окне Immediate появятся значения всех полей таблицы.

Пример :

Удалить текущую запись в таблице.

Таблица до удаления записи:

Private Sub Кнопка0_Click()

Dim basa As Database, nabor As Recordset, поля As Field, имена As String

Set basa = CurrentDb

Set nabor = basa.OpenRecordset("Товары", dbOpenTable)

nabor.Move 2 ' Устанавливаем указатель на 3-ю запись

nabor.Delete ' Удаляем её

End Sub

Результат:

Глава 19. Применение свойства RecordCount

объекта Recordset

Пример:

Определить количество записей в наборе данных, открытым для таблицы “Товары”.

Dim basa As Database, nabor As Recordset

Set basa = CurrentDb

Set nabor = basa.OpenRecordset("Товары", dbOpenTable)

MsgBox "Количество записей=" & nabor.RecordCount

Результат работы:

Применение свойства Fields

объекта Recordset

Пример:

Определить названия полей для текущей записи в наборе данных,

открытым для таблицы “Товары”.

Dim basa As Database, nabor As Recordset, поля As Field, имена As String

Set basa = CurrentDb

Set nabor = basa.OpenRecordset("Товары1", dbOpenSnapshot)

For Each поля In nabor.Fields

имена = имена & поля.name & vbCr

Next

MsgBox имена

Результат:

Применение свойства AbsolutePosition

объекта Recordset

Пример:

Определить номер текущей записи в наборе данных,

открытым для таблицы “Товары”.

Dim basa As Database, nabor As Recordset

Set basa = CurrentDb

Set nabor = basa.OpenRecordset("Товары1", dbOpenSnapshot)

nabor.Move 2 ‘указатель записи смещаем на 2 позиции

MsgBox nabor.AbsolutePosition ‘вывод номера текущей записи

Результат:

Глава 20. Применение методов Find

Пример:

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

Цена=100 руб. из таблицы «Товары».

Таблица выглядит следующим образом:

Private Sub Кнопка0_Click()

Dim basa As Database, nabor As Recordset

Set basa = CurrentDb

Set nabor = basa.OpenRecordset("Товары", dbOpenSnapshot)

With nabor

.FindFirst "Цена=100"

MsgBox !Товар & " " & !Цена & " " & !Поставщик

End With

End Sub

Результат:

Пример:

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

Цена=100 руб. из таблицы «Товары», приведённой выше.

Private Sub Кнопка0_Click()

Dim basa As Database, nabor As Recordset

Set basa = CurrentDb

Set nabor = basa.OpenRecordset("Товары", dbOpenSnapshot)

With nabor

.FindLast "Цена=100"

MsgBox !Товар & " " & !Цена & " " & !Поставщик

End With

End Sub

Результат:

Пример:

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

Цена>60

Исходная таблица:

Использование метода FindNext, который находит в наборе записей следующую, удовлетворяющую условиям и делает её текущей.

Private Sub Кнопка0_Click()

Dim basa As Database, nabor As Recordset, s As String

Set basa = CurrentDb

Set nabor = basa.OpenRecordset("Товары", dbOpenSnapshot)

With nabor

.FindFirst "Цена>60"

Do Until.NoMatch

s = s & !Товар & " " & !Цена & " " & !Поставщик & vbCr

.FindNext "Цена>60"

Loop

End With

MsgBox s

End Sub

Результат:

Использование метода FindPrevious, который находит в наборе записей предыдущую, удовлетворяющую условиям и делает её текущей.

Private Sub Кнопка0_Click()

Dim basa As Database, nabor As Recordset, s As String

Set basa = CurrentDb

Set nabor = basa.OpenRecordset("Товары", dbOpenSnapshot)

With nabor

.FindLast "Цена>60"

Do Until.NoMatch

s = s & ! Товар & " " & ! Цена & " " & !Поставщик & vbCr

.FindPrevious "Цена>60"

Loop

End With

MsgBox s

End Sub