Пример программы поиска и удаления записей

Пример программы поиска и редактирования записей

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

 

'Работа с записями таблицы - поиск и редактирование

Sub редактирование()

Dim База, Запись As Variant

Set База = CurrentDb 'семейство объектов текущей базы данных

Set Запись = База.OpenRecordSet("Студенты")

'открытие набора записей текущей базы данных

Do Until Запись.EOF = True

'Свойство "End of File" - признак конца файла

If Запись![Фамилия].Value = InputBox ("Введите _

искомую фамилию") Then

Запись.Edit

'метод блокирует запись и разрешает обновление полей записи

Запись![Фамилия].Value = InputBox ("Введите _

новую фамилию")

Запись.Update 'метод сохраняет изменения полей записи

MsgBox Запись![Фамилия].Value

End If

Запись.MoveNext 'метод перехода к следующей записи

Loop

End Sub

 

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

 

'Последовательный поиск по фамилии и удаление

'Программа не проверяет корректность введенной с клавиатуры 'фамилии

Sub удаление()

Dim База, Запись As Variant

Dim p As String * 20, признак As Boolean, удаление As Byte

Set База = CurrentDb

Set Запись = База.OpenRecordSet("Студенты")

признак = False 'признак характеризует хотя бы одну найденную 'запись

p = InputBox("Введите фамилию", "Поиск и удаление")

If RTrim(p) = Empty Then Exit Sub

With Запись

Do Until Запись.EOF = True

If RTrim(![Фамилия].Value) = RTrim(p) Then

признак = True

удаление = MsgBox(RTrim(![Фамилия].Value) & " "

& RTrim(![Имя]) & " " & RTrim(![Отчество]) _

& " " & ![КодСпециальности] & "-" & ![Курс] _

& ![Группа], vbYesNoCancel + vbQuestion, _

"Удалить запись?")

Select Case удаление

Case vbYes

MsgBox RTrim(p) & " отчислен(а)!", vbCritical

.Delete

Case vbNo

MsgBox "Ура! Не отчислили!", vbExclamation

Case vbCancel

Exit Sub

End Select

End If

.MoveNext 'метод перехода к следующей записи

Loop

If признак = False Then MsgBox "Записи с фамилией " _

& RTrim(p) & " отсутствуют"

.Close

End With

End Sub