![](/user_photo/2706_HbeT2.jpg)
- •1. Постановка задачи.
- •2. Выполнение работы
- •2.1. Создание отчет в ms Office Access 2003
- •2.2. Резервное копирование и экспорт базы данных в субд Access
- •2.3. Создание базы данных «бд_Счет_фактуры» в субд sql Server 2005
- •2.3.1 Создание форм ввода/ вывода данных по справочным таблицам в Access
- •2.3.2. Создание запросов
- •2.3.3. Создание отчетов
- •2.3.4. Создание главной кнопочной формы приложения
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 – Форма «Счет-фактуры»