РефератыИнформатикаБаБаза данных Accese

База данных Accese

Работа № 8


Средства
VB
6 для создания, заполнения и обработки таблиц баз данных
Microsoft
Access


Цель работы:

Изучение и использование средств, которыми располагают среда проектирования и язык VB 6, для работы с базами данных Microsoft Access. Исследование и использование инструмента VisData
(Data
Base
Manager
Диспетчера баз данных
) для создания файла базы данных и произвольного числа таблиц этой базы, а также стандартного элемента управления Data
для заполнения полей таблиц значениями и нестандартного элемента MS
Flex
Grid
для отображения заполненных таблиц на экранной форме. Исследование возможности использования в процедурах на языке VB 6 языка запросов SQL для обработки таблиц базы данных.


Контрольные вопросы:


1. Как с помощью Диспетчера баз данных
можно создать новый файл mdb
для дальнейшего включения в него произвольного числа таблиц базы данных?


2. Как создается новая таблица в уже созданном файле mdb
? Как в таблицу включаются новые поля (столбцы)? Как определяется тип данных включаемого в таблицу поля?


3. Что такое индекс и как с помощью Диспетчера баз данных
можно создать индекс и включить его в таблицу?


4. Как присоединить элемент управления Data
(Данные
) к одной из таблиц базы данных, содержащихся в файле mdb
? Какие два свойства при этом необходимо означить?


5. Какое значение свойства EOF
Action
элемента управления Data
позволяет вносить новые записи в таблицу базы данных?


6. Какие два свойства текстового поля отвечают за «привязку» этого поля к элементу управления Data
? Как с помощью «привязанных» текстовых полей вносить данные в таблицу базы данных?


7. Какое свойство элемента Data
может иметь в качестве значения не только ссылку на реальную таблицу базы данных, но и выражение языка SQL, с помощью которого создается виртуальная таблица?


8. Как и с помощью какого выражения SQL можно программно создать реальную таблицу в файле базы данных?


9. Как и с помощью какого выражения SQL можно программно удалить все данные из реальной таблицы в файле базы данных?


Пример 8.1.

В двух вариантах 1-го задания 7-й работы были рассмотрены две таблицы базы данных «Автосервис»:


· таблица 7.1 «Автомобили»;


· таблица 7.2 «Неисправности».


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



Рис. 8.1. Экранная форма приложения для заполнения значениями двух таблиц файла mdb
и для отработки запросов на SQL


В данном примере с помощью Диспетчера баз данных
(VisData
) среды проектирования VB 6 создается Access файл Автосервис.
mdb
с указанными двумя таблицами: Cars
(Автомобили) и Disrepairs
(Неисправности). Технология создания таблиц файла mdb
в среде IDE VB 6 описана в пособии [2], стр. 133 – 139.


Для заполнения значениями 1-й таблицы используются текстовые поля Text1
, Text2
и Text3
, привязанные к элементу Data1
, который, в свою очередь, привязан к таблице Cars
(Автомобили) файла Автосервис.
mdb
.


Для заполнения значениями 2-й таблицы используются текстовые поля Text4
, Text5
и Text6
, привязанные к элементу Data2
, который, в свою очередь, привязан к таблице Disrepairs
(Неисправности) файла Автосервис.
mdb
. Технология «привязки» описана в учебном пособии [2] – стр. 140 – 145.


Для визуализации таблиц используются элементы из нестандартного класса «Гибкая сетка данных» (MS
Flex
Grid
).


После заполнения таблиц пользователь может обратиться к базе данных с запросом на языке SQL. Для этой цели используется команда меню Query
. Щелчок этой команды вызывает появление окна Inputbox (рис. 8.2), в котором, «по умолчанию», уже есть образец выражения SQL. Пользователь, разумеется, может ввести свой вариант запроса.



Рис. 8.2. Окно для ввода запроса на SQL


После ввода запроса и щелчка кнопки ОК
происходит автоматическое формирование 3-й таблицы, запись SQL выражения в поле метки и отображение новой таблицы в гибкой сетке – элементе MSFlexGrid3
на экранной форме (см. рис. 8.1).


Опуская описание этапа проектирования интерфейса, сразу представим программный код данного приложения:


Private Sub Form_Load()


With MSFlexGrid1 ‘ Для таблицы Автомобили.


.ColWidth(0) = 500: .ColWidth(1) = 1200


.ColWidth(2) = 1500: .ColWidth(3) = 1000


End With


With MSFlexGrid2 ‘ Для таблицы Неисправности.


.ColWidth(0) = 500: .ColWidth(1) = 1000


.ColWidth(2) = 3000: .ColWidth(3) = 900


End With


With MSFlexGrid3 ‘ Для запроса «по умолчанию».


.ColWidth(0) = 500: .ColWidth(1) = 1500


.ColWidth(2) = 1200: .ColWidth(3) = 3000


.ColWidth(4) = 900: .ColWidth(5) = 1000


End With


End Sub


Private Sub mnuQuery_Click()


sSQL$ = InputBox("Введите запрос на SQL, " & _


"относительно двух таблиц базы данных", &q

uot;SQL", _


"Select car_number, car_type, disrep_name, " & _


"repair_cost, Cars.disrep_code " & _


"From Cars Inner Join Disrepairs " & _


"On Disrepairs.disrep_code=Cars.disrep_code " & _


"Order By repair_cost")


Data3.RecordSource = sSQL


Data3.Refresh


Label1.Caption = " SQL: " & sSQL


End Sub


Пример

8.2

. Рассмотрим приложение, которое демонстрирует действие массовых операций языка SQL. Для этого добавим на экранную форму примера 8.1 пару элементов, представленных на рис. 8.3. Добавим также команду меню Itogi
, с помощью которой будет обрабатываться таблица «Неисправности».



Рис. 8.3. Вид фрагмента окна приложения с двумя новыми элементами: Data
4
и MSFlexGrid
4
для отображения результатов массовых операций


После щелчка команды Itogi
элемент MSFlexGrid4
на экранной форме будет выглядеть так, как показано на рис. 8.3.


Разумеется, что элемент Data4
, как и элемент Data3
, должен быть привязан к тому же файлу mdb
, что и элементы Data1
и Data2
. А его свойство RecordSource будет означено в ходе выполнения следующей программы:


Private Sub mnuItogi_Click()


sSQL$ = "Select Count(repair_cost), " & _


"CCur(Min(repair_cost)), " & _


"CCur(Max(repair_cost)), " & _


"CCur(Sum(repair_cost)), " & _


"CCur(Avg(repair_cost)) " & _


"From Disrepairs"


Data4.RecordSource = sSQL


Data4.Refresh


With MSFlexGrid4


.Row = 0


.Col = 0: .Text = "Показатель"


.Col = 1: .Text = "Количество"


.Col = 2: .Text = "Минимум"


.Col = 3: .Text = "Максимум"


.Col = 4: .Text = "Сумма"


.Col = 5: .Text = "Среднее"


.Row = 1


.Col = 0: .Text = "Значение"


End With


End Sub


В ходе выполнения данной работы студенты должны выполнить 2 задания.


Задание 1.

В процессе выполнения задания студенты решают задачу создания не виртуальной таблицы базы данных, как это было в примере 8.1, а реальной таблицы с именем CarDis
– в файле mdb
. В эту таблицу с помощью SQL запроса должны быть внесены данные из исходных двух таблиц в соответствии с предлагаемым вариантом.


Указание 1
. Для создания новой таблицы можно спроектировать команду меню Create
Table
. Следует, однако, помнить, что эта команда однократного действия и после создания таблицы эту команду можно либо «закомментировать», либо уничтожить. Код процедуры для этой команды следующий:


Private Sub mnuCreateTable_Click()


sSQL$ = "Create Table CarDis (car_number Text(20), " & _


" car_type Text(20), disrep_name Text(50), " & _


" repair_cost Currency, disrep_code Long)"


Data3.Database.Execute sSQL


End Sub


Указание 2.
В силу того, что при многократных запусках программы в новую таблицу записи будут добавляться
(старые записи при этом удаляться не будут), для очистки таблицы предлагается создать команду меню Delete
Table
:


Private Sub mnuDeleteTable_Click()


sSQL$ = "Delete From CarDis"


Data3.Database.Execute sSQL


End Sub


Кроме того, необходимо внести небольшие коррективы в код процедуры mnuQuery_
Click
(см. пример 8.1): В начало процедуры следует вставить оператор:


mnuDeleteTable_Click


А в конец процедуры следует вставить операторы:


sSQL = "Insert Into CarDis " & sSQL


Data3.Database.Execute sSQL


Вариант 1
. В реальную таблицу CarDis
внести записи, соответствующие запросу примера 8.1, но с ограничением: стоимость ремонта должна быть не менее 500 рублей, а записи должны быть отсортированы по убыванию стоимости ремонта.


Вариант 2
. В реальную таблицу CarDis
внести записи, соответствующие запросу примера 8.1, но с ограничением: стоимость ремонта должна быть не более 500 рублей, а записи должны быть отсортированы по возрастанию стоимости ремонта.


Задание 2.

В ходе выполнения задания студенты, на базе примера 8.2 и результата выполнения задания 1 изучают действие массовых операций языка SQL на записях вновь построенной таблицы CarDis базы данных «Автосервис».


Указание.
В SQL выражении, фигурирующем в коде процедуры mnuItogi_
Click
, следует изменить только имя таблицы после слова From
.


Вариант 1
. Фрагмент экранной формы с результатами должен иметь вид, представленный на рис. 8.4:



Рис. 8.4. Фрагмент экранной формы с элементами FlexGrid3
и FlexGrid4
для демонстрации отработки SQL запросов по 1-му варианту


Вариант 2
. Фрагмент экранной формы с результатами должен иметь вид, представленный на рис. 8.5:



Рис. 8.5. Фрагмент экранной формы с элементами FlexGrid3
и FlexGrid4
для демонстрации отработки SQL запросов по 2-му варианту


К О Н Е Ц

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: База данных Accese

Слов:1435
Символов:12358
Размер:24.14 Кб.