Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет 2 по БД вар 1.doc
Скачиваний:
3
Добавлен:
12.07.2019
Размер:
483.33 Кб
Скачать

2.2. Резервное копирование и экспорт базы данных в субд Access

Одной из важнейших задач, которые вы должны постоянно выполнять как администратор баз данных – это осуществление резервного копирования. И хотя резервное копирование, конечно, не является наиболее интересной частью вашей работы, оно является чрезвычайно важной частью. Если что-то пойдет не так, то это задача именно администратора баз данных восстановить сервер и запустить его как можно быстрее. Потеря производительности или, что хуже того, потеря данных, может очень дорого обойтись вашей компании. В нашей лабораторной работе используется полное резервное копирование созданной базы данных. Полное резервное копирование – создает полную резервную копию всех экстентов базы данных. Если вы будете восстанавливать базу данных, используя для этого полную резервную копию, потребуется только самый последний созданный вами экземпляр. Однако, полное резервное копирование – самый медленный тип резервного копирования. Созданная в данной лабораторной работе база данных «DB_Storage» была полностью копирована и сохранена под именем «DB_storage_copy» и экспортирована в СУБД Access.

2.3. Создание базы данных «бд_Счет_фактуры» в субд sql Server 2005

В среде SQL Server 2005 была создана база данных «БД_Счет_фактуры», состоящая из таблиц «Счет-фактуры», «Состав счет-фактуры», «Поставщик», «Покупатель», «Грузопередатчики», «Товары и услуги», «Банки». Были созданы связи между таблицами и частично заполнены данными. Схема базы данных «БД_Счет_фактуры» представлена на рисунке 6.

Рисунок 6 – Схема базы данных «БД_Счет_фактуры»

Для соединения базы данных «БД_Счет_фактуры» со средой Access было установлено ODBC соединение.

2.3.1 Создание форм ввода/ вывода данных по справочным таблицам в Access

По таблице «Банки» в Access была создана форма в столбец и сохранена под названием «Банки». В область «Примечание формы» с панели элементов были добавлены кнопки: «Наверх», «На предыдущую», «На следующую», «На последнюю», «Добавить», «Отменить», «Сохранить», «Редактировать», «Удалить», «Закрыть», а также флажок для включения поиска по названию и поле со списком. Свойства формы, кнопок, флажка и поля со списком были настроены в соответствии с заданием. Для каждой кнопки был прописан программный код, отвечающий за событие «Нажатие кнопки».

Для кнопки КнопкаНаВерх:

DoCmd.GoToRecord , , acFirst

Для кнопки КнопкаНаПредыдущую:

DoCmd.GoToRecord , , acPrevious

Для кнопки КнопкаНаСледующую:

DoCmd.GoToRecord , , acNext

Для кнопки КнопкаНаПоследнюю:

DoCmd.GoToRecord , , acLast

Для кнопки КнопкаДобавить:

If MsgBox(«Добавить запись?», vbYesNo) = vbYes Then

DoCmd.GoToRecord , , acNewRec

Dim i As Integer

For i = 0 To Me.Count - 1

If Me.Controls(i).ControlType = acTextBox Or Me.Controls(i).ControlType = acComboBox Then

Me.Controls(i).Locked = False

End If

If Me.Controls(i).ControlType = acCommandButton And UCase(Me.Controls(i).Name) <> UCase("КнопкаДобавить") Then

Me.Controls(i).Enabled = False

End If

next

Me.КнопкаСохранить.Enabled = True

Me.КнопкаОтменить.Enabled = True

Else

'действие по добавлению отменено

End If

Для кнопки КнопкаОтменить:

Dim i As Integer

For i = 0 To Me.Count - 1

If Me.Controls(i).ControlType = acTextBox Or Me.Controls(i).ControlType = acComboBox Then

Me.Controls(i).Locked = True

End If

If Me.Controls(i).ControlType = acCommandButton Then

Me.Controls(i).Enabled = True

End If

Next

DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

Для кнопки КнопкаСохранить:

Dim i As Integer

For i = 0 To Me.Count - 1

If Me.Controls(i).ControlType = acTextBox Or Me.Controls(i).ControlType = acComboBox Then

Me.Controls(i).Locked = True

End If

If Me.Controls(i).ControlType = acCommandButton Then

Me.Controls(i).Enabled = True

End If

Next

DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

Для кнопки КнопкаНачатьРедактирование:

Dim i As Integer

For i = 0 To Me.Count - 1

If Me.Controls(i).ControlType = acTextBox Or Me.Controls(i).ControlType = acComboBox Then

Me.Controls(i).Locked = False

End If

If Me.Controls(i).ControlType = acCommandButton And UCase(Me.Controls(i).Name) <> UCase("КнопкаНачатьРедактирование") Then

Me.Controls(i).Enabled = False

End If

Next

Me.КнопкаСохранить.Enabled = True

Me.КнопкаОтменить.Enabled = True

Для кнопки КнопкаУдалить:

If MsgBox(«Удалить запись?», vbYesNo) = vbYes Then

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70

DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

Else

‘действие отменено

End if

Для кнопки КнопкаЗакрыть:

Dim str As String

str = CStr(Me.Name)

DoCmd.Close acForm, str, acSavePrompt

Для поля со списком и флажка также был прописан их программный код:

Для поля ПолеСоСписком в событии Получение фокуса:

Me.ПолеСоСписком.Requery

Для поля ПолеСоСписком в событии После обновления:

DoCmd.GoToRecord , , acFirst

Do While Me.Название <> Me.ПолеСоСписком

DoCmd.GoToRecord , , acNext

Me.Repaint

Loop

Для флажка Флажок1 в событии После обновления:

If Me.Флажок1 = 0 Then

Me.ПолеСоСписком.Locked = True

Else

Me.ПолеСоСписком.Locked = False

End If

На рисунке 7 представлен внешний вид формы «Банки».

Рисунок 7 – внешний вид формы «Банки»

Аналогичным образом были созданы формы «Грузопередатчики» и «Товары и услуги».

Далее были созданы формы по одиночным таблицам «Поставщик», «Покупатель». Форма «Поставщик» представлена на рисунке 8.

Рисунок 8 – Форма «Поставщик»

Далее была создана единая форма ввода/вывода «Счет-фактура» по таблицам «Счет-фактуры» и «Состав счет-фактуры» с использованием информации из других таблиц (рисунок 9).

Рисунок 9 – Форма «Счет-фактуры»