Шаг 159 - Метод CreateField
Описание
Создает новый объект Field (только в рабочей области ядра Microsoft Jet).
Set поле = объект.CreateField (имя, тип, размер)
Параметры
поле
Объектная переменная, задающая создаваемый объект Field.
объект
Объектная переменная, задающая объект Index, Relation или TableDef, в котором создается новый объект Field.
имя
Необязательный. Выражение или переменная типа Variant (подтип String), содержащая уникальное имя нового объекта Field. Сведения о допустимых именах полей приведены в разделе о свойстве Name.
тип
Необязательный. Константа, определяющая тип данных нового объекта Field. Сведения о допустимых константах определения типа данных приведены в разделе о свойстве Type.
размер
Необязательный. Выражение или переменная типа Variant (подтип Integer), определяющая в байтах максимальный размер объекта Field, содержащего текстовые значения. Сведения о допустимых значениях аргумента размер приведены в разделе о свойстве Size. Для числовых полей и текстовых полей постоянной длины данный аргумент игнорируется.
Замечания
Метод CreateField используется для создания нового поля и для указания имени, типа данных и размера поля. Если опустить какие-либо элементы синтаксиса при вызове метода CreateField, то можно задать или изменить значения соответствующего свойства с помощью инструкции присваивания перед добавлением нового объекта в семейство. После добавления нового объекта в семейство допускается изменение значений некоторых (но не всех) свойств поля. Дополнительные сведения приведены в разделах, посвященных отдельным свойствам.
Аргументы тип и размер применимы только к объектам Field, описывающим поля объектов TableDef. Для объектов Field, описывающих поля объектов Index и Relation, эти аргументы игнорируются.
Если аргумент имя указывает на объект, который уже добавлен в семейство, то при вызове метода Append возникает ошибка выполнения.
Для удаления объекта Field из семейства Fields следует применить к семейству метод Delete. Не допускается удаление объекта Field из семейства Fields объекта TableDef после создания индекса, включающего данное поле.
Пример
Следующая программа использует метод CreateField для создания трех объектов Field в новом объекте TableDef. Далее отображаются свойства объектов Field, которые автоматически задаются в методе CreateField. (Свойства, значения которых остаются пустыми при создании объектов Field, не отображаются).
Sub CreateFieldX()
Dim dbsNorthwind As Database
Dim tdfNew As TableDef
Dim fldLoop As Field
Dim prpLoop As Property
Set dbsNorthwind = OpenDatabase("Борей.mdb")
Set tdfNew = dbsNorthwind.CreateTableDef("NewTableDef")
' Создает и добавляет новый объект Field
' в новый объект TableDef.
With tdfNew
' Метод CreateField задает стандартный размер для нового
' объекта Field, если размер не указан.
.Fields.Append .CreateField("ТекстовоеПоле", dbText)
.Fields.Append .CreateField("ЦелоеПоле", dbInteger)
.Fields.Append .CreateField("ПолеДаты", dbDate)
End With
dbsNorthwind.TableDefs.Append tdfNew
Debug.Print "Свойства новых полей в " & tdfNew.Name
' Отображает семейство Fields, чтобы показать свойства
' новых объектов Field.
For Each fldLoop In tdfNew.Fields
Debug.Print " " & fldLoop.Name
For Each prpLoop In fldLoop.Properties
' Свойства, недопустимые в контексте семейства
' TableDefs вызовут ошибку при попытке
' прочитать их значения.
On Error Resume Next
Debug.Print " " & prpLoop.Name & " - " & IIf(prpLoop = "", "[empty]", prpLoop)
On Error GoTo 0
Next prpLoop
Next fldLoop
' Удаляет объект TableDef, созданный только для демонстрации.
dbsNorthwind.TableDefs.Delete tdfNew.Name
dbsNorthwind.Close
End Sub
Предыдущий Шаг | Следующий Шаг | Оглавление