'Объявляем необходимые переменные
Dim NewDB As Database
Dim NewWs As Workspace
Dim lngDBOpts As Long
Dim strDBPath As String
Dim F1 As Field
Dim Idx1 As Index
Dim NewTbl As TableDef
Dim MyRelation As Relation
Dim RelField As Field
'Устанавливаем путь к создаваемой БД с указанием ее имени (MyDB.mdb)
strDBPath = "d:\MyDB.mdb"
lngDBOpts = dbVersion40 + dbEncrypt
'Создаем рабочее пространство
Set NewWs = DBEngine.Workspaces(0)
'Создаем Базу Данных
Set NewDB = NewWs.CreateDatabase(strDBPath, dbLangCyrillic, lngDBOpts)
'Создаем таблицу Folder -------------------------->
Set NewTbl = NewDB.CreateTableDef("Folder")
'создаем поле ID
Set F1 = NewTbl.CreateField("ID", dbLong)
F1.Attributes = dbAutoIncrField
'Создаем объект индекс
Set Idx1 = NewTbl.CreateIndex("PrimaryKey")
'Устанавливаем его свойства
Idx1.Name = "PrimaryKey"
Idx1.Primary = True
'Свойство Fields должно быть таким же, как имя поля котороe становится индексным
Idx1.Fields = "ID"
'Прибавляем индекс к таблице
NewTbl.Indexes.Append Idx1
'Добавляем поле к таблице
NewTbl.Fields.Append F1
'создаем поле Caption
Set F1 = NewTbl.CreateField("Caption", dbText, 15)
F1.Attributes = dbFixedField
F1.AllowZeroLength = False
NewTbl.Fields.Append F1
'создаем поле Description
Set F1 = NewTbl.CreateField("Description", dbText)
F1.Attributes = dbVariableField
F1.AllowZeroLength = True
NewTbl.Fields.Append F1
'создаем поле DateC
Set F1 = NewTbl.CreateField("DateC", dbText, 10)
F1.Attributes = dbFixedField
F1.AllowZeroLength = False
NewTbl.Fields.Append F1
'создаем поле DateM
Set F1 = NewTbl.CreateField("DateM", dbText, 10)
F1.Attributes = dbFixedField
F1.AllowZeroLength = True
NewTbl.Fields.Append F1
'Добавляем таблицу к БД
NewDB.TableDefs.Append NewTbl
'Создаем таблицу Tree -------------------------->
Set NewTbl = NewDB.CreateTableDef("Tree")
'создаем поле ID
Set F1 = NewTbl.CreateField("ID", dbLong)
F1.Attributes = dbAutoIncrField
'Создаем объект индекс
Set Idx1 = NewTbl.CreateIndex("PrimaryKey")
'Устанавливаем его свойства
Idx1.Name = "PrimaryKey"
Idx1.Primary = True
'Свойство Fields должно быть таким же, как имя поля котороe становится индексным
Idx1.Fields = "ID"
'Прибавляем индекс к таблице
NewTbl.Indexes.Append Idx1
'Добавляем поле к таблице
NewTbl.Fields.Append F1
'создаем поле IDMain
Set F1 = NewTbl.CreateField("IDMain", dbLong)
Set Idx1 = NewTbl.CreateIndex("SecondaryKey")
'Устанавливаем его свойства
Idx1.Name = "SecondaryKey1"
Idx1.Primary = False
'Свойство Fields должно быть таким же, как имя поля котороe становится индексным
Idx1.Fields = "IDMain"
'Прибавляем индекс к таблице
NewTbl.Indexes.Append Idx1
'Добавляем поле к таблице
NewTbl.Fields.Append F1
'создаем поле IDSub
Set F1 = NewTbl.CreateField("IDSub", dbLong)
Set Idx1 = NewTbl.CreateIndex("SecondaryKey")
'Устанавливаем его свойства
Idx1.Name = "SecondaryKey2"
Idx1.Primary = False
Idx1.Unique = True
'Свойство Fields должно быть таким же, как имя поля котороe становится индексным
Idx1.Fields = "IDSub"
'Прибавляем индекс к таблице
NewTbl.Indexes.Append Idx1
'Добавляем поле к таблице
NewTbl.Fields.Append F1
'Добавляем таблицу к БД
NewDB.TableDefs.Append NewTbl
'Создаем таблицу TextFields -------------------------->
Set NewTbl = NewDB.CreateTableDef("TextFields")
'создаем поле ID
Set F1 = NewTbl.CreateField("ID", dbLong)
F1.Attributes = dbAutoIncrField
'Создаем объект индекс
Set Idx1 = NewTbl.CreateIndex("PrimaryKey")
'Устанавливаем его свойства
Idx1.Name = "PrimaryKey"
Idx1.Primary = True
'Свойство Fields должно быть таким же, как имя поля котороe становится индексным
Idx1.Fields = "ID"
'Прибавляем индекс к таблице
NewTbl.Indexes.Append Idx1
'Добавляем поле к таблице
NewTbl.Fields.Append F1
'создаем поле Caption
Set F1 = NewTbl.CreateField("Caption", dbText, 15)
F1.Attributes = dbFixedField
F1.AllowZeroLength = False
NewTbl.Fields.Append F1
'создаем поле Content
Set F1 = NewTbl.CreateField("Content", dbMemo)
F1.Attributes = dbUpdatableField
F1.AllowZeroLength = False
NewTbl.Fields.Append F1
'создаем поле DateC
Set F1 = NewTbl.CreateField("DateC", dbText, 10)
F1.Attributes = dbFixedField
F1.AllowZeroLength = False
NewTbl.Fields.Append F1
'создаем поле DateM
Set F1 = NewTbl.CreateField("DateM", dbText, 10)
F1.Attributes = dbFixedField
F1.AllowZeroLength = True
NewTbl.Fields.Append F1
'Добавляем таблицу к БД
NewDB.TableDefs.Append NewTbl
'Создаем таблицу Files -------------------------->
Set NewTbl = NewDB.CreateTableDef("Files")
'создаем поле ID
Set F1 = NewTbl.CreateField("ID", dbLong)
Set Idx1 = NewTbl.CreateIndex("SecondaryKey")
'Устанавливаем его свойства
Idx1.Name = "SecondaryKey"
Idx1.Primary = False
Idx1.Unique = False
'Свойство Fields должно быть таким же, как имя поля котороe становится индексным
Idx1.Fields = "ID"
'Прибавляем индекс к таблице
NewTbl.Indexes.Append Idx1
'Добавляем поле к таблице
NewTbl.Fields.Append F1
'создаем поле FileArea
Set F1 = NewTbl.CreateField("FileArea", dbMemo)
F1.Attributes = dbUpdatableField
F1.AllowZeroLength = False
NewTbl.Fields.Append F1
'Добавляем таблицу к БД
NewDB.TableDefs.Append NewTbl
'Создаем таблицу MainTable -------------------------->
Set NewTbl = NewDB.CreateTableDef("MainTable")
'создаем поле Key
Set F1 = NewTbl.CreateField("Key", dbText, 20)
F1.Attributes = dbFixedField
F1.AllowZeroLength = False
'Создаем объект индекс
Set Idx1 = NewTbl.CreateIndex("PrimaryKey")
'Устанавливаем его свойства
Idx1.Name = "PrimaryKey"
Idx1.Primary = True
'Свойство Fields должно быть таким же, как имя поля котороe становится индексным
Idx1.Fields = "Key"
'Прибавляем индекс к таблице
NewTbl.Indexes.Append Idx1
NewTbl.Fields.Append F1
'создаем поле Value
Set F1 = NewTbl.CreateField("Value", dbText)
F1.Attributes = dbFixedField
F1.AllowZeroLength = False
NewTbl.Fields.Append F1
'Добавляем таблицу к БД
NewDB.TableDefs.Append NewTbl
Set MyRelation = NewDB.CreateRelation("Include")
MyRelation.Table = "TextFields"
MyRelation.ForeignTable = "Tree"
MyRelation.Attributes = dbRelationUnique
Set RelField = MyRelation.CreateField("ID")
RelField.ForeignName = "IDSub"
MyRelation.Fields.Append RelField
NewDB.Relations.Append MyRelation
Set MyRelation = NewDB.CreateRelation("Append")
MyRelation.Table = "TextFields"
MyRelation.ForeignTable = "Files"
MyRelation.Attributes = 0
Set RelField = MyRelation.CreateField("ID")
RelField.ForeignName = "ID"
MyRelation.Fields.Append RelField
NewDB.Relations.Append MyRelation
'После создания БД, закрываем ее и рабочее пространство
NewDB.Close
NewWs.Close
'Уничтожаем объекты
Set NewDB = Nothing
Set NewWs = Nothing
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2