Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual Basic в примерах.docx
Скачиваний:
12
Добавлен:
18.08.2019
Размер:
1.1 Mб
Скачать

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

До сих пор мы работали с базами данных, созданных средствами 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(“Имя Таблицы”)

dbOpen.TableDefs.Delete NewTbl.Name

Если Вам нужно сохранить таблицу вместе с данными под другим именем, то таблицу можно просто переименовать (создается не копия, а эта же таблица получает другое имя):

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

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 Rename_Click()

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

tbl.Name = "ДругоеИмяТаблицы"

End Sub

DAO или ADO:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]