Рефераты. Програмирование на Visual Basic

значением Datal. DatabaseName = DataFile) и заполнение комбинированною

списка именами таблиц (цикл). Из этого списка можно выбрать нужную таблицу

(рис. 5.11).

[pic]

Рис 5 10

После выбора таблицы, процедура обрабогки события Combo l_KeyPress вызывает

процедуру FillGrid заполнения сетки, в которую передается имя выбранной

таблицы Combol.Text.

В процедуре FillGrid инициализируется множество записей (оператор

Datal.RecordSoui-ce = TableName) и определяется количество колонок таблицы

(оператор Gridi.Cols = Datal.Database(TableName).Fields.Count), первая

строка сетки (Gridl.Row = 0) заполняется названиями колонок выбранной

таблицы (операторы

For I = 0 То Datal.Database(TableName).Fields.Coiint-l

Gridl.Col = 1

Gridl.Text = Data].Database^TableName).Fields(I).Name

Gridi.ColWidth(l) = TextWidth(Gridl.Text) + 100

Next I)

В этих операторах для задания ширины каждой колонки используется обращение

к функции TextWidth, которая возвращает длину выводимого текста.

Количество записей и соответственно количество строк сетки

определяется операторами

Datal. Refresh

Datal .Recordset.Move Last

Gridl.Rows = Datal. Recordset. RecordCount + 1 (первая строка

заполнялась названиями полей).

Возврат на первую запись и к первой строке сетки производится операторами

Datal. Recordset. MoveFirst и Gridl.Row = 0. [pic]

Рис 511

Цикл Do-Loop обеспечивает движение по записям (оператор Data I. Recordset.

MoveNext) и выполняется пока функция EOF имеет значение False (т.е. до

последней записи). На каждом шаге цикла производится переход к новой строке

(Grid I. Row = Grid 1. Row + 1), для которой выполняется цикл (Gridl.Col =

I) заполнения всех ее ячеек. Если поле таблицы базы данных не содержит

значения (проверяется функцией IsNull(Datal. Recordset. Fields(I). Value)),

то соответствующая ячейка сетки заполняется пустой строкой.

Последние операторы обеспечивают согласование ширины ячеек таблицы с

максимальной возможной длиной поля записи (операторы

CellWidth = TextWidth(Gridl.Text) + 100 • If CellWidth > Gridl.ColWidth(I)

Then

Gridl.ColWidth(I) = CellWidth).

Заполненная сетка показана на рисунке 5.12.

5.4. СОЗДАНИЕ БАЗ ДАННЫХ

Создание новой базы данных может быть выполнено программно или с помощью

специальной встроенной подсистемы Data Manager, позволяющей в диалоговом

режиме создавать и модифицировать базы данных механизма Jet. Подсистема

Data Manager запускается из раскрывающегося меню Add-Ins Главного меню

Visual Basic.

[pic]

Рис 5 12

Рассмотрим использование подсистемы Data Manager на примере создания базы

данных по товарам на складе и их поставщикам. Таблицы База данных включает

две таблицы (таблица товаров на складе, таблица поставщиков).

Таблица товаров на складе

|Номер|Номер |HilJBBUHe |Стоимость,|Количест|

|товар|поставщи|roB.tpJ |руб /hit |во на |

|а |ка | | |СКЛаДе |

|1 |2 |Магнитола |150000 |20 |

|2 |2 |Приемник |200000 |5 |

|3 |1 |Плеер |350000 |15 |

|4 |3 |Кофеварка |175000 |34 |

|5 |3 |Элсктрочаи|120000 |57 |

| | |ни к | | |

|6 |1 |CD — Плеер|750000 |8 |

Таблица поставщиков

|Номер |Название |Город |Адрес |Телефон|

|постав-|фирмы | | | |

|шика | | | | |

|1 |ЗАО |Тверь |ул. |12345 |

| |“Посредник| |Космонавт| |

| |” | |ов 12 | |

|2 |“Импульс” |Москва |Пр Мира, |2334455|

| | | |5 | |

|3 |“Старт” |Серпухов|ул |345678 |

| | | |Зеленая | |

| | | |11 | |

Таблица товаров на складе связана с таблицей поставщиков через поле “Номер

поставщика” (внешний ключ для таблицы товаров).

После щелчка мыши по пункту Data Managei раскрывающегося меню Add-Ins

Главного меню появляется окно Data Manager, в меню “Файл” нужно выбрать

пункт “New DataBase” (создание новой базы данных). Появляется окно для

создания файла базы данных (рис. 5.13). По умолчанию задано расширение

файла .mbd (файл базы данных Access).

[pic]

Рис 5 13

После задания имени файла появляется окно проектирования для задания

таблиц, полей таблиц, отношений и индексов (рис. 5.14).

Кнопка “New” используется для создания новой таблицы, “Open” — открытие

существующей таблицы для ввода данных, “Delete” — удаление таблицы,

“Design” — задание параметров полей таблицы, “Attach” — для подключения

используемой СУБД (по умолчанию — СУБД Access). “Relations” — построение

отношений между таблицами.

[pic]

Щелчок мыши по кнопке “New” открывает окно проектирования таблицы для ввода

имен полей и задания их свойств (рис. 5.15).

Рис 5 14

[pic]

Рис 515

В поле Field Name вводятся имена полей таблицы и в раскрывающемся киже меню

задается их тип (при задании типа полей “Номер товара” и “Номер поставщика”

следует выбирать Long Integei, так как эти поля будут использоваться в

качестве счетчика для первичного ключа). Стрелки “ > ” и “ < ” обеспечивают

соответственно добавление введенных имен полей или их удаление. Кнопки “Up”

и “Down” позволяют изменять последовательность полей таблицы. Аналогично

может быть введена таблица поставщиков.

Когда таблицы созданы и выбрана одна из них, активизируются кнопки Design

(проекгирование таблиц). Open (открытие таблиц для ввода или редактирования

информации). Delete (удаление таблиц) и Relations (отношения между

таблицами). Проектирование таблиц должно предшествовать заданию отношений

между таблицами и вводу данных

При щелчке по кнопке Design открывается окно редактирования (рис 5 16),

содержащее список параметров полей и командные кнопки

[pic]

Рис 5 16

Для выбранного поля таблицы (на рисунке выбрано поле “номер поставщика”)

при щелчке по кнопке “Edit” открывается окно редактирования параметров (рис

5 17). На рисунке для поля таблицы “Номер поставщика” задан параметр

“Counter” (Счетчик) Это поле является ключевым и должно иметь уникальные

значения При задании параметра “Counter”, СУБД автоматически поддерживает

уникальность этого поля, увеличивая значение счетчика при вводе новой

записи Другие параметры имеют следующий смысл DefaultValue — значение по

умолчанию, DataUpdatable — возможность изменения. Required — обязательность

ввода, AllowZeioLenght — возможность задания строки нулевой длины,

ValidationText и ValidationRule — правила корректности, Fixed или Variable

Length — фиксированной или переменной длины.

[pic]

Рис 5 17

[pic]

Кнопка “Indexes..” позволяет перейти к созданию и редактированию индексов

таблицы (рис 5 18) Для создания или

добавления нового индекса нужно щелкнуть по кнопке “Add ” открывается окно

для создания индекса (рис. 5.19).

Рис 5 18

В окне нужно задать имя индекса. Затем выбрать поля таблицы (“Fields in

tdble”), которые включаются в индекс. Выбранные поля кнопками Add(ASC) или

Add(DEC) (в зависимости от того, упорядочиваются записи по возрастанию или

убыванию) Добавляются в индексный список (“Fields in index”). Кнопка Remove

позволяет удалить поле индекса Индикаторы в окне позволяют также определить

индекс как первичный (Plimary Index) [pic]

или внешний (Foieign Index), уникальный (Unique) или кластерный

(Clustered). Соответствующий требованиям индекс сохраняется кнопкой ОК и

отображается в окне Indexes (рис. 5.18) Для удаления индекса используется

кнопка Remove

Кнопка “Keys. .” окна Table Editor позволяет перейти к созданию ключей

таблицы (рис. 5 20). В раскрывающемся списке полей таблицы выбирается поле

“Номер поставщика”, которое будет использоваться в качестве первичного

ключа. Для таблицы “Товары” первичным ключом определим поле “Номер товара”.

[pic]

Кнопка “Relations...” окна Table Editor позволяет перейти к созданию

отношений между таблицами. В окне Relations” (рис. 5.21) нужно выбрать из

раскрывающегося списка первичную таблицу (Prymary Table) и связанную

таблицу (Related Table) и установить связь между ними В рассматриваемом

примере первичной таблицей является таблица поставщиков, поле “Номер

поставщика” которой используется в качестве внешнего ключа для таблицы

“Товары”. Ключевое поле первичной таблицы (Номер поставщика) оюбражается на

поле окна Поле для связи связанной таблицы выбирается в раскрывающемся

списке (“Select Matching Fields). Связующие поля отображаются в окне.

[pic]

Вид отношения “один ко многим” (один поставщик может поставлять различные

товары) задается переключателем “Many”. Переключатель “One” определяет

отношение “один к одному”.

Флажок “Enfoice Refeiential Integrity” позволяет установить, нужно ли

обеспечивать целостность отношении (средства СУБД автоматически проверяют

целостность базы данных при модификации информации) Кнопка “Add” вводит

заданное отношение в базу данных.

Таблицы и связи между ними созданы и отображаются в списке таблиц базы

данных (рис. 5 22). При выборе таблицы становятся доступны кнопки “Open”,

“Design”, “Delete”, “Relations” Кнопка “Open” открывает выбранную таблицу

для ввода или редактирования данных (рис. 5.23). Данные приведенных выше

таблиц примера могут быть введены в базу данных.

[pic]

Рис. 5.22

[pic]

Рис. 5.23

К недостаткам подсистемы Data Manager можно отнести ограниченные

возможности по заданию отношений между таблицами. Подсистема позволяет

задать отношения только для ключевых полей “Counter” (Счетчик) и не

позволяет задать составных ключей. Базы данных сложной структуры

целесообразней создавать непосредственно в СУБВ Access, которая имеет

развитые и очень удобные средства проектирования баз данных.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.