MyTetra Share
Делитесь знаниями!
Шаг 159 - Метод CreateField
Время создания: 16.03.2019 23:43
Текстовые метки: ms кирпичики, createfield, tabledef, createtabledef
Раздел: !Закладки - VBA - Access - MS кирпичики
Запись: xintrea/mytetra_db_adgaver_new/master/base/151142714266248phyn5/text.html на raw.githubusercontent.com

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




Предыдущий Шаг | Следующий Шаг | Оглавление

 
MyTetra Share v.0.59
Яндекс индекс цитирования