Программное создание Баз Данных

И так, в предыдущей статье было показано, как создать БД.  Но созданный файл – пуст и с ним ничего нельзя делать пока не будут созданы таблицы. 

Создание Таблиц 

Для создания новой таблицы неоходимо определить новый объект TableDef (Table Definition – описание таблицы). Объект TableDef содержит всю необходимую информацию для определения таблицы БД. Он описывает в БД тип информации, хранимой в таблице и некоторые факультативные свойства этой таблицы. Объект TableDef содержит 3 коллекции, 5 методов и 10 свойств.

Свойства объекта TableDef  устанавливаются при создании таблицы и их значения различаются для собственных таблиц Microsoft Jet  и присоединеных таблиц.

Следующие операторы показывают, как создать объект TableDef и определить имя таблицы: 

'Объявлеям необходимые переменные

Dim NewDB As Database

Dim NewWs As WorkSpace

Dim NewTbl As TableDef  

Dim strDBPath As String

'Устанавливаем путь к создаваемой БД с указанием ее имени (MyDB.mdb)

StrDBPath = “C:\ExamplDB\MyDB.mdb”

Создаем рабочее пространство

Set NewWs = DBEngine.Workspaces(0)

'Создаем Базу Данных

Set NewDB = NewWs.CreateDatabase (strDBPath, dbLangGeneral)

Создаем таблицу

Set NewTbl = NewDB.CreateTableDef (Name) 

Свойство таблицы Name является одним из свойств объекта TableDef, и обычно это свойство единственное, которое необходимо для создания таблицы БД Access.

При подключении к БД внешней таблицы можно использовать некоторые другие свойства (Attributes, Connect, SourceTableName и т.д – рассматривать мы их не будем). Эти свойства можно указывать как последовательные параметры метода CreateTableDef. Можно также определять и другие свойства, давая им некоторые значения. Эти операторы должны следовать за методом CreateTableDef.  

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

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

'Объявляем переменную для поля

Dim Fl As Field

'Создаем поле с его атрибутами

Set Fl = NewTbl.CreateField (“MyField”, dbText, 20)

 

Теперь нампредстоит финальная часть, т.е. присоединение созданной таблицы к БД. Это делается с помощью метода Append объекта TableDef. Но сначала нам необходимо добавить в нашу таблицу поле (!), а затем саму таблицу к БД.

 

'Добавляем поле к таблице

NewTbl.Fields.Append Fl

'Добавляем таблицу к БД

NewDb.TableDefs.Append NewTbl 

Внимание. При добавлении таблицы к БД, если создаваемая таблица  уже существует, возникает перехватываемая ошибка  - 3010 – 'Table ''Имя введенной таблицы''  alredy exists'. Так же, если имя таблицы пусто или содержит недопустимые символы возникает перехватываемая ощибка – 3125. Необходимо включить код для их перехвата.  

Удаление Таблиц  

Удаление таблицы из БД осуществляется с помощью метода Delete объекта TableDef.  

NewDb.TableDefs.Delete “MyTable” 

Внимание. Метод Delete нужно использовать с большой осторожностью. При удалении таблицы все индексы и – самое глвное – данные также удаляются.

При удалении таблицы, если таблица  уже удалена, возникает перехватываемая ошибка  - 3265, так же, если имя таблицы пусто или содержит недопустимые символы возникает перехватываемая ощибка – 3125.  

Пример создания БД находится в разделе  SourceCode