Создание базы данных для автопарка (“Машины”, “Механик”, “Ремонт”), страница 2

-  Подменю Mechanics and repairs позволяет производить действия, связанные с механиками и ремонтом (рис. 4).

 

Рис. 3. Подменю Cars                                  Рис. 4. Подменю Mechanics and repairs


3.2. Данные

Для демонстрации работы некоторых запросов в базу данных были введены данные.

На рисунках 5-9 представлены таблицы базы данных AutoDB

Рис. 5. Таблица cars

  

Рис. 6. Таблица car_types                            Рис. 7. Таблица repair_types

Рис. 8. Таблица mechanics

Рис. 9. Таблица repairs


3.3. Формы и запросы

В данном разделе рассматриваются формы, реализующие запросы, и приводятся результаты некоторых  запросов применительно к данным (п. 3.2).

Добавление машины

Добавление машины производится с помощью формы form_add_car (рис. 10)

Рис. 10. Форма для добавления машины

Для выбора типа машины установлены соответствующие свойства элемента управления ComboType типа ComboBox (табл. 1).

Таблица 1. Некоторые свойства элементов управления формы form_add_car

Тип элемента управления

Объект

Свойство или функция

Значение

СomboBox

ComboType

RowSource

Car_types.car_type,

                 car_type_id

RowSourceType

6 - Fields

Функция Click кнопки “Добавить” (form_add_car.Command1):

select max(car_id) from cars into array arr

dimension arrval[9]

arrval[1] = arr[1] + 1

arrval[2] = form_add_car.TextVariety.text

arrval[3] =  val(form_add_car.ComboType.value)

arrval[4] =  val(form_add_car.TextYear.text)

arrval[5] =  val(form_add_car.TextExpl.text)

arrval[6] =  form_add_car.TextPlace.text

arrval[7] =  val(form_add_car.TextCost.text)

arrval[8] =  val(form_add_car.TextSpeed.text)

arrval[9] =  val(form_add_car.TextCap.text)

select * from cars  into cursor cur where ;

                          variety = arrval[2] and car_type_id = arrval[3];

                          and manuf_place = arrval[6] and manuf_year = arrval[4];

                          and speed = arrval[8] and exploitation = arrval[5];

                          and capacity = arrval[9] and cost = arrval[7]

if reccount() > 0

            if MessageBox("Такая машина уже существеут. Продолжить?",4+32)=7

            else

                        insert into cars from array arrval

                        MessageBox("Машина добавлена")

            endif

else                  

                        insert into cars from array arrval

                        MessageBox("Машина добавлена ")

Endif

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

Просмотр сведений о машинах машин

Просмотр сведений о машинах производится с помощью формы form_q1 (рис. 11)

Рис. 11. Форма для просмотра сведений о машинах

Таблица 2. Некоторые свойства элементов управления формы form_q1

Тип элемента управления

Объект

Свойство или функция

Значение

ListBox

ListNames

RowSource

cars.car_id,variety

RowSourceType

6 - Fields

Функция form_q1.ListNames.InteractiveChange:

select car_type, manuf_place, manuf_year, speed, cost, capacity, exploitation;

 from cars_types into array arr where car_id = val(form_q1.ListNames.value)

 form_q1.TextType.value = arr[1]

 form_q1.TextPlace.value = arr[2]

 form_q1.TextYear.value = arr[3]

 form_q1.TextSpeed.value = arr[4]

 form_q1.TextCost.value = arr[5]