Реферат: Создание и заполнение баз данных
Название: Создание и заполнение баз данных Раздел: Рефераты по информатике Тип: реферат | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Содержание.Введение…………………………………………………………………………. .21.Создание и заполнение базы данных…………………………………………..3 1.1.Создание БД……………………………………………………….. 3 1.2.Вывод таблиц в формы……………………………………………6 1.3.Формирование различного вида запросов………………………. 7 1.4.Вывод запросов на формы…………………………………….. …101.5.Создание отчёта с итогами…………………………………….. ...121.6.Создание меню управления базой данных……………………….132.Экспорт данных в Visual Basic 6.0 (с использованием элементов управления DATA и MSFlexGrid)……………………………………………………………15Заключение………………………………………………………………………25Список использованной литературы…………………………………………..26 ВведениеКак известно, большинство современных компьютеров работают под управлением операционной системы Windows и оснащены, как правило, пакетом приложений Word, Excel, Access и VisualBasic семейства MSQffice. В настоящее время практически повсеместно используется пакет прикладных программ Microsoft Office, в стандартный набор которого входит MS Access – мощная система управления базами данных. Access интегрирован с прочими приложениями пакета, что позволяет применять богатые возможности компонентов. Office. Access позволяет создавать дружественный интерфейс, а также – решать специальные задачи при помощи программирования на языке Visual Basic for Application (VBA), в основе которого лежит язык Basic. Visual Basic стал очень популярным в последнее время благодаря лёгкости создания программных продуктов, удобству и быстроте доступа к базам данных и глубокой интеграции с Microsoft Office, что способствует развитию навыков объектного и визуального проектирования. 1. Создание и заполнение базы данных.1.1. Создание БД.Таблица 1 в режиме конструктора Поле «Kod» (Код города) - ключевое. Через него будет связь со второй таблицей. Таблица 2 в режиме конструктора Связывание таблицы 1 и таблицы 2 Выбираем в меню «Сервис» - «Схема данных», добавляем созданные таблицы. Выделяем в таблице 1 поле «Kod» и, удерживая нажатой левую кнопку мышки, перетаскиваем это поле на поле с таким же названием во второй таблице. В открывшемся диалоговом окне необходимо отметить флажками следующие пункты: «Обеспечение целостности данных» «Каскадное обновление связанных полей» «Каскадное удаление связанных записей» Связь один-ко-многим означает, что одной записи первой таблицы соответствует ни одна, одна или много записей второй таблицы. Открываем таблицы и заполняем их: Для вывод на формы используем конструктор, на котором формируем необходимые текстовые поля с привязкой в полям таблиц и метками для подписи данных. Форма в режиме конструктор:
1.3. Формирование различного вида запросов 1) Вывести города и районы , у которых расход воды за предыдущий период был больше задаваемой величины Конструктор запроса: Запрос 1 на языке SQL: SELECT Tab1.Nazv, Tab2.[Nazv r], Tab1.Ras2 FROM Tab1 INNER JOIN Tab2 ON Tab1.Kod = Tab2.Kod WHERE (((Tab1.Ras2)>[задать величину])); Результат выполнения запроса:
2) Вывести информацию о городах, где суммарный расход ресурсов увеличился по сравнению с предыдущем периодом хотя бы для одного ресурса . Конструктор запроса: Вспомогательный запрос: основной запрос: Запрос 2 на языке SQL: Вспомогательный запрос: SELECT Tab2.Kod, Sum(Tab2.Rn1) AS Sum1, Sum(Tab2.Rn2) AS Sum2, Sum(Tab2.Rn3) AS Sum3, Sum(Tab2.Rn4) AS Sum4, Sum(Tab2.Rn5) AS Sum5 FROM Tab2 GROUP BY Tab2.Kod; Основной запрос: SELECT Tab1.Kod, Tab1.Nazv FROM Tab1 INNER JOIN zap21 ON Tab1.Kod = zap21.Kod WHERE (((zap21.Sum1)>[ras1])) OR (((zap21.Sum2)>[ras2])) OR (((zap21.Sum3)>[ras3])) OR (((zap21.Sum4)>[ras4])) OR (((zap21.Sum5)>[ras5])); Результат выполнения запроса Вспомогательный запрос: основной запрос: 1.4. Вывод запросов на формы. Как в пункте 2.2. создаём формы в конструкторе и выводим туда результаты запросов. Форма запроса 1 в режиме конструктор: Форма запроса 2 в режиме конструктор:
Форма запроса 1 в рабочем состоянии: Форма запроса 2 в рабочем состоянии:
1.5. Создание отчёта с итогами по группам записей. Для создания отчёта также можно воспользоваться конструктором или мастером создания отчётов. Отчёт в режиме конструктора:
Результат составления отчёта:
1.6. Создание меню управления базой данных. Для создания меню откроем конструктор и расположим на нём командные кнопки и метки к ним.
Для того чтобы меню заработало, необходимо указать действие для каждой кнопки. Щёлкнув два раза левой кнопкой мышки, открываем окно параметров, выбираем «нажатие кнопки» и указываем, что необходимо выполнить процедуру. Пример процедуры для кнопки «Информация о предприятии» Private Sub Кнопка0_Click() On Error GoTo Err_Кнопка0_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "Tab1" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Кнопка0_Click: Exit Sub Err_Кнопка0_Click: MsgBox Err.Description Resume Exit_Кнопка0_Click EndSub Аналогично указываем процедуры других кнопок. Меню в рабочем состоянии: 2.Экспорт данных в Visual Basic 6.0 (с использованием элементов управления DATA и MSFlexGrid) Разработать форму и программный код в VisualBasic, обеспечивающий доступ к базе данных (через элемент Data) и позволяющий: 3. Для каждого города и района вывести информацию о ресурсах с минимальным расходом.(ресурс, расход). 4. По выбираемым ресурсам вывести информацию о районе и городе с максимальным расходом. Для работы с базой данных в программном средстве VisualBasic необходимо сохранить созданную базу данных в формате 1997 года ( сервис - служебные программы - преобразовать вAccess97), затем выйти изAccess и уже ее подключать в программеVB6 к элементу Data, найдя имя БД в списке его свойства DatabaseName. Форма до запуска программы :
Используемые элементы управления:
Программный код формы : 'ОТОБРАЖЕНИЕ ТАБЛИЦ Private Sub Command1_Click() Label.Caption = "Таблица №1" Grid.Clear 'очистка сетки Grid.Cols = 8 Grid.Rows = Data1.Recordset.RecordCount + 1 'устанавливаем количество строк в гибких сетках равным количеству записей в таблице + 1 (для заголовков столбцов) Data1.Recordset.MoveFirst 'переход к первой записи ForI = 1 ToData1.Recordset.RecordCount 'цикл отображения записей таблицы в гибких сетках ForJ = 1 To 8 'по столбцам записи таблицы If I = 1 Then Grid.TextMatrix(0, J - 1) = Data1.Recordset.Fields(J - 1).Name Grid.TextMatrix(I, J - 1) = Data1.Recordset.Fields(J - 1) NextJ Data1.Recordset.MoveNext 'переход к следующей записи таблицы 1 NextI Data1.Recordset.MoveFirst 'возврат к первой записи ForJ = 1 To 8 'выравниваем ширину столбцов Grid.ColWidth(J - 1) = Grid.Width / 9 Next J End Sub Private Sub Command4_Click() Label.Caption = "Таблица №2" Grid.Clear 'очистка сетки Grid.Cols = 8 Grid.Rows = Data2.Recordset.RecordCount + 1 'устанавливаем количество строк в гибких сетках равным количеству записей в таблице + 1 (для заголовков столбцов) Data2.Recordset.MoveFirst 'переход к первой записи ForI = 1 ToData2.Recordset.RecordCount 'цикл отображения записей таблицы в гибких сетках ForJ = 1 To 8 'по столбцам записи таблицы If I = 1 Then Grid.TextMatrix(0, J - 1) = Data2.Recordset.Fields(J - 1).Name Grid.TextMatrix(I, J - 1) = Data2.Recordset.Fields(J - 1) NextJ Data2.Recordset.MoveNext 'переход к следующей записи таблицы 1 NextI Data2.Recordset.MoveFirst 'возврат к первой записи ForJ = 1 To 8 'выравниваем ширину столбцов Grid.ColWidth(J - 1) = Grid.Width / 9 NextJ EndSub 'ДОБАВЛЕНИЕ ЗАПИСЕЙ Private Sub Command2_Click() 'в таблицу 1 Dim Reply As VbMsgBoxResult Reply = MsgBox("Если будете вводить новую запись, нажмите кнопку OK", _ vbOKCancel, "Ввод новой записи") If Reply = vbOK Then Text1(0).SetFocus 'Остановка, текстовые окна пустые, в них нужно ввести запись Data1.Recordset.AddNew EndIf MsgBox ("После ввода записи нажмите левую стрелку элемента Data") End Sub Private Sub Command5_Click() 'в таблицу 2 Dim Reply As VbMsgBoxResult Reply = MsgBox("Если будете вводить новую запись, нажмите кнопку OK", _ vbOKCancel, "Ввод новой записи") If Reply = vbOK Then Text2(0).SetFocus 'Остановка, текстовые окна пустые, в них нужно ввести запись Data2.Recordset.AddNew EndIf MsgBox ("После ввода записи нажмите левую стрелку элемента Data") End Sub 'УДАЛЕНИЕ ЗАПИСЕЙ PrivateSubCommand3_Click() 'из таблицы 1 DimReplyAsVbMsgBoxResult Reply = MsgBox("Если будете удалять текущую запись, нажмите кнопку OK", vbOKCancel, "Удаление текущей записи") IfReply = vbOKThen Data1.Recordset.Delete 'удаление записи Data1.Recordset.MoveFirst 'переход к первой записи End If Command1_Click End Sub Private Sub Command6_Click() 'из таблицы 1 Dim Reply As VbMsgBoxResult Reply = MsgBox("Если будете удалять текущую запись, нажмите кнопку OK", vbOKCancel, "Удаление текущей записи") If Reply = vbOK Then Data2.Recordset.Delete 'удаление записи Data2.Recordset.MoveFirst 'переход к первой записи End If Command3_Click End Sub Отображение таблицы 1:
Отображение таблицы 2:
3. Для каждого города и района вывести информацию о ресурсах с минимальным расходом.(ресурс, расход). Private Sub Command7_Click() Label.Caption = "Информация о ресурсах с минимальным расходом" Grid.Clear 'очистка сетки Grid.Cols = 5 Grid.Rows = Data2.Recordset.RecordCount + 1 'устанавливаем количество строк в гибкой сетке равным количеству записей в таблице + 1 (для заголовков столбцов) Grid.FormatString = "^Код города|^код района|название района|^№ ресурса|^расход" Data2.Recordset.MoveFirst 'переход к первой записи For I = 1 To Data2.Recordset.RecordCount Min = Data2.Recordset.Fields(3): nommin = "" For J = 3 To 7 'по столбцам записи таблицы If Data2.Recordset.Fields(J) < Min Then Min = Data2.Recordset.Fields(J): nommin = "" If Data2.Recordset.Fields(J) = Min Then nommin = nommin & Str(J - 2) & " " Next J Grid.TextMatrix(I, 0) = Data2.Recordset.Fields(0) Grid.TextMatrix(I, 1) = Data2.Recordset.Fields(1) Grid.TextMatrix(I, 2) = Data2.Recordset.Fields(2) Grid.TextMatrix(I, 3) = nommin Grid.TextMatrix(I, 4) = Min Data2.Recordset.MoveNext 'переход к следующей записи таблицы 1 Next I For J = 1 To 5 'выравниваем ширину столбцов Grid.ColWidth(J - 1) = Grid.Width / 6 Next J Data2.Recordset.MoveFirst 'возврат к первой записи End Sub
4. По выбираемым ресурсам вывести информацию о районе и городе с максимальным расходом. Private Sub Command8_Click() Grid.Cols = 4 Grid.FormatString = "" res = InputBox("Введите номер ресурса от 1 до 5", "Ввод данных") Data2.Recordset.MoveFirst 'переход к первой записи таблицы1 Grid.Rows = 1 'количество строк в гибкой сетке Grid.FormatString = "Код города|Код района|Название города|Название _района" ForJ = 1 To 4 'выравниваем ширину столбцов Grid.ColWidth(J - 1) = Grid.Width / 5 Next J Max = 0 For I = 1 To Data2.Recordset.RecordCount If Data2.Recordset.Fields(res + 2) > Max Then Max = _Data2.Recordset.Fields(res + 2): Grid.Rows = 1 If Data2.Recordset.Fields(res + 2) = Max Then Grid.Rows = Grid.Rows + 1 Grid.TextMatrix(Grid.Rows - 1, 0) = Data2.Recordset.Fields(0) Grid.TextMatrix(Grid.Rows - 1, 1) = Data2.Recordset.Fields(1) Grid.TextMatrix(Grid.Rows - 1, 3) = Data2.Recordset.Fields(2) Data1.Recordset.MoveFirst 'переход к первой записи таблицы1 ForJ = 1 ToData1.Recordset.RecordCount 'по записям ищем _название города по его коду If Data1.Recordset.Fields(0) = Data2.Recordset.Fields(0) Then _Grid.TextMatrix(Grid.Rows - 1, 2) = Data1.Recordset.Fields(1) Data1.Recordset.MoveNext 'переходим к следующей записи _таблицы2 Next J EndIf Data2.Recordset.MoveNext 'переходим к следующей записи таблицы1 NextI Label.Caption = "По ресурсу " & Str(res) & " максимальный расход " & Str(Max) & " был в:" End Sub Private Sub Command9_Click() End End Sub
В ходе данного курсового проекта, поставленная цель была реализована (пункты 1 и 2 задания по КП были выполнены на Access ., 3 и 4 на Visual Basic .(обработка БД Access)). Были выполнены входящие в индивидуальное задание задачи по следующим разделам VB: программирование линейных алгоритмов, программирование разветвляющихся алгоритмов, программирование циклических алгоритмов, создание процедур и функций пользователя. Список использованной литературы : 1) Методические указания к выполнению лабораторных работ по дисциплине “Компьютерная подготовка” с применением СУБД ACCESS. Выпуск 2. / Сост.: А.Е. Макаренко, Т.В. Бугреева, И.А. Ильина, Е.В. Лемешко, М.В. Седун; ГУУ. – М., 2002. – 48 с. 2) Методические указания к выполнению лабораторной работы по дисциплине “Компьютерная подготовка” с применением СУБД ACCESS. Выпуск 1. / 3) Сост.: Т.В. Бугреева, И.А. Ильина, А.Е. Макаренко, Е.В. Лемешко, М.В. Седун; ГУУ. – М., 2002. – 32 с. 4) Несмеянов И.А., Барковский В.В., Венчковский Л.Б. Использование языка Visual Basic 6.0 при создании программных средств для обработки баз данных: Учебно-практическое пособие – 2-е изд., испр./ ГУУ. – М., 2006. – 180 с. |