Шаг 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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.