Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Создание базы данных своими руками






До сих пор мы работали с базами данных, созданных средствами Access. С его помощью базы создавались быстро, без особых проблем. Однако может наступить время, когда Вам понадобится из программы создать базу, таблицы, определить поля в таблице, или уже к готовой базе добавить таблицы, удалить таблицы или поля и так далее. Этакая динамическая БД.

Демонстрационная программа создает базу шаг за шагом. Все лишнее из программы убрано, поэтому для корректного выполнения необходимо два условия:

 

1. Ранее такой базы не должно существовать

2. Кнопки на форме щелкать сверху вниз последовательно (впрочем, последовательность задается принудительно свойством Enabled)

 

База данных создается в несколько приемов, причем их последовательность строго определена, иначе Вы, в лучшем случае, получите базу без таблиц.

Примечания:

Не забудьте в форму поместить элемент управления данными Data и сделать его невидимым. База будет располагаться на рабочем столе.

 

Форма:

(В свойствах кнопок 2, 3 и 4 => Enabled = False)

 

 

Код:

'создание объектных переменных

Dim db As Database ‘для базы данных

Dim tbl As TableDef ‘для таблицы

Dim fld As Field ‘для полей таблицы

 

Private Sub createDB_Click()

Set db = DBEngine.Workspaces(0).CreateDatabase _

(" c: \windows\Рабочий стол\ПробнаяБД.mdb", dbLangGeneral)

‘делаем доступной вторую кнопку

createTbl.Enabled = True

End Sub

 

Private Sub createTbl_Click()

'создаем таблицу ДЛЯ базы данных (не в базе!!!)

Set tbl = db.CreateTableDef(" Таблица")

createFld.Enabled = True

End Sub

 

Private Sub createFld_Click()

'создаем поле для таблицы

Set fld = tbl.CreateField(" Поле", dbText, 20)

'добавляем поле в таблицу

tbl.Fields.Append fld

addTable.Enabled = True

End Sub

 

Private Sub addTable_Click()

'а вот ТЕПЕРЬ созданную таблицу (с полем!) можно добавить в базу!

db.TableDefs.Append tbl

End Sub

 

Примечание:

Если в строке типа

Set fld = tbl.CreateField(" Поле", dbText, 20)

не указать размер текстового поля (здесь = 20), то по умолчанию он будет 255 символов.

 

 

Создавать таблицу в базе можно несколько иначе:

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

 

Форма:

 

 

Код:

 

'создание объектных переменных

Dim db As Database

Dim tbl As TableDef

 

Private Sub createDB_Click()

Set db = OpenDatabase(" C: \Program Files\SchoolDB\SchoolDB.mdb")

End Sub

 

Private Sub Command1_Click()

Set tbl = db.CreateTableDef(" Таблица")

With tbl

.Fields.Append.CreateField(" Фамилия", dbText)

.Fields.Append.CreateField(" Имя", dbText)

.Fields.Append.CreateField(" Отчество", dbText)

.Fields.Append.CreateField(" Дата рождения", dbDate)

.Fields.Append.CreateField(" Год рождения", dbInteger)

db.TableDefs.Append tbl

End With

End Sub

 

А теперь сделайте самостоятельно следующее:

На предыдущую форму поместите кнопку «Добавить таблицу в БД» и добавьте новое поле (запрашивая имя поля у пользователя) в существующую таблицу.

 

Как это делается (сначала самостоятельно):

 

Dim dbOpen As Database

Dim NewTbl As TableDef

 

Set dbOpen = OpenDatabase(" c: \Program Files\SchoolDB\SchoolDB.mdb")

Set NewTbl = dbOpen.TableDefs(“Таблица”)

 

With NewTbl

.Fields.Append.CreateField(“Новое поле”, dbText)

End With

dbOpen.Close

 

Кроме создания таблиц в базах данных, нужно еще уметь и удалять эти таблицы.

Это делается так:

 

Set dbOpen = OpenDatabase(" c: \Program Files\SchoolDB\SchoolDB.mdb")

Set NewTbl = dbOpen.TableDefs(“Имя Таблицы”)


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал