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

Требуется создать процедуру ввода новой записи в таблицу Студенты учебной базы данных.

 

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

'Программа не проверяет корректность вводимых значений,

'не отслеживает нажатие кнопки Cancel,

'не осуществляет поиск дублирующих записей в поле КодСтудента 'таблицы «Студенты»

Sub добавление1()

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

Set База = CurrentDb

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

With Запись

.AddNew 'метод добавляет запись

![КодСтудента].Value = InputBox(«Введите код», «Ввод», _

«141111»)

![Фамилия].Value = InputBox(«Введите фамилию студента», _

«Ввод», «Шариков»)

![Имя].Value = InputBox(«Введите имя», «Ввод», «Полиграф»)

![Отчество].Value = InputBox(«Введите отчество студента», _

«Ввод», «Полиграфович»)

![ДатаРождения].Value = CDate(InputBox(«Введите дату _

рождения», «Ввод», «01.02.01»))

![Адрес].Value = InputBox(«Введите домашний адрес», «Ввод», _

«Москва, Петровка — 25»)

![КодСпециальности].Value = InputBox(«Введите код _

специальности», «Ввод», «У»)

![Курс].Value = CInt(InputBox(«Введите курс», «Ввод», «1»))

![Группа].Value = CInt(InputBox(«Введите группу», «Ввод», «1»))

![Подгруппа].Value = CInt(InputBox(«Введите подгруппу», _

«Ввод», «1»))

.Update 'метод сохраняет новую запись

.Close

End With

End Sub

 

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

 

Option Compare Database

'тип данных Type Студент описывается в декларативной части 'модуля

Private Type Студент

Код As String * 5

Фам As String * 20

Имя As String * 10

Отч As String * 20

Д_Р As Date

Адр As String * 255

КодСпец As String * 1

Курс As Byte

Группа As Byte

Подгруппа As Byte

End Type

 

Sub добавление2()

Dim Экономист As Студент

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

Set База = CurrentDb

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

With Экономист

q = InputBox(«Введите код», «Ввод», «02111»)

'здесь может присутствовать проверка корректности 'введенного значения кода студента

If RTrim(q) = Empty Then Exit Sub Else.Код = q

q = InputBox(«Введите фамилию студента», «Ввод», «Шариков»)

'здесь может присутствовать проверка корректности 'введенного значения фамилии,

' и т.д.

If RTrim(q) = Empty Then Exit Sub Else.Фам = q

q = InputBox(«Введите имя», «Ввод», «Полиграф»)

If RTrim(q) = Empty Then Exit Sub Else.Имя = q

q = InputBox(«Введите отчество студента», «Ввод», _

«Полиграфович»)

If RTrim(q) = Empty Then Exit Sub Else.Отч = q

q = CDate(InputBox(«Введите дату рождения», «Ввод», _

«01.02.01»))

If RTrim(q) = Empty Then Exit Sub Else.Д_Р = q

q = InputBox(«Введите домашний адрес», «Ввод», «Москва, _

Петровка — 25»)

If RTrim(q) = Empty Then Exit Sub Else.Адр = q

q = InputBox(«Введите код специальности», «Ввод», «У»)

If RTrim(q) = Empty Then Exit Sub Else.КодСпец = q

q = CInt(InputBox(«Введите курс», «Ввод», «1»))

If RTrim(q) = Empty Then Exit Sub Else.Курс = q

q = CInt(InputBox(«Введите группу», «Ввод», «1»))

If RTrim(q) = Empty Then Exit Sub Else.Группа = q

q = CInt(InputBox(«Введите подгруппу», «Ввод», «1»))

If RTrim(q) = Empty Then Exit Sub Else.Подгруппа = q

End With

'Здесь может присутствовать проверка наличия дублирующих 'записей в поле ‘КодСтудента,

'для чего необходимо организовать поиск значения КодСтудента _

'в таблице Студенты,

'аналогичного значению, введенному с клавиатуры

With Запись

.AddNew

![КодСтудента].Value = Экономист.Код

![Фамилия].Value = Экономист.Фам

![Имя].Value = Экономист.Имя

![Отчество].Value = Экономист.Отч

![ДатаРождения].Value = Экономист.Д_Р

![Адрес].Value = Экономист.Адр

![КодСпециальности].Value = Экономист.КодСпец

![Курс].Value = Экономист.Курс

![Группа].Value = Экономист.Группа

![Подгруппа].Value = Экономист.Подгруппа

.Update

.Close

End With

End Sub

 

 

еще рефераты
Еще работы по информатике