Создание полей
Описание полей
Поля таблицы описываются с помощью объекта Field, который содержит всю информацию о поле таблицы данных. Для каждого поля следует указать имя и тип. В зависимости типа поля описание других свойств может быть обязательным или нет. Существуют 17 свойств объекта Field. С их помощью можно определять размер и тип поля, и так же является это поле «родным» Microsoft Jet или это присоединенное поле внешней базы. Visual Basic распознает 14 различных типов полей данных.
Типы полей данных
Тип поля данных |
Размер |
Тип данных в VB |
Комментарии |
BOOLEAN |
1 |
Boolean |
Хранит только 0 или 1 |
BYTE |
1 |
Integer |
Хранит только от 0 до 255 |
COUNTER |
8 |
Long |
Автоматически наращиваемый тип Long |
CURENCY |
8 |
Curency |
15 позиций слева от десятичной точки и 4 справа |
DATETIME |
8 |
Date/Time |
Дата хранится слева от деc. Точки, а время - справа |
DOUBLE |
8 |
Double |
|
GUID |
16 |
(нет) |
Используется для хранения глобально уникальных идентификаторов |
INTEGER |
2 |
Integer |
|
LONG |
8 |
Long |
|
LONGBINARY |
V |
(нет) |
Используется для OLE – объектов |
MEMO |
V |
String |
Длина около 1,2 Гб |
SINGLE |
4 |
Single |
|
TEXT |
V |
String |
Ограничено 255 – ю байтами |
Многие из типов полей данных понятны и поэтому чуть подробнее опишем только некоторые из них.
Поля типа LONGBINARY предназначены для хранения изображений и OLE – объектов;
Поле BOOLEAN чаще всего применяется для хранения результатов выбора в связанных флажках, где 1 – True, а 0 – False. Но будьте осторожны при вводе информации в эти поля, т.к. любое отличное от 0 число будет преобразовываться в 1;
Поле типа BYTE воспринимает только числа от 0 до 255, любое другое значение вызовет ошибку 524;
Тип поля COUNTER (счетчик) является автоматически наращиваемым и очень часто применяется в качестве уникального первичного ключа. Оно предназначено только для чтения;
Поле типа GUID используется для хранения 128 – разрядного числа специального типа;
Поля создаются с помощью метода CreateField. Имеются два способа создания полей.
Первый способ
С помощью метода CreateField определяем имя поля, тип и размер.
'Объявляем переменные
Dim F1 As Field, F2 As Field, F3 As Field
'Устанавливаем имя, тип и размер поля
Set F1 = NewTbl.CreateField (“FirstName”, dbText, 20)
Set F2 = NewTbl.CreateField (“LastName”, dbText, 20)
Set F3 = NewTbl.CreateField (“Age”, dbInteger)
После того как поля, включаемые в таблицу, описаны, при помощи метода Append объекта TableDef, эти поля добавляются к таблице.
NewTbl.Fields.Append F1
NewTbl.Fields.Append F2
NewTbl.Fields.Append F3
Второй способ
Можно вызвать метод CreateField без всяких параметров, а имя, тип и размер установить потом при помощи оператора присваивания.
'Объявляем переменную
Dim F1 As Field
'Создаем поле
Set F1 = NewTbl.CreateField ()
'Свойства поля устанавливаем явно
F1.Name = “FirstName”
F1.Type = dbText
F1.Size = 20
После того как поле, включаемое в таблицу, описано, при помощи метода Append объекта TableDef, оно добавляется к таблице:
NewTbl.Fields.Append F1
Установка факультативных свойств полей
Кроме имени поля, типа хранимых в нем данных и размера поля, можно определить еще некоторые свойства поля влияющие на его работу.
Первым из этих свойств является Attributes. При создании полей используются два его основных значения. Первое – автоинкремент – задает приращение значения поля БД всякий раз, когда добавляется новая запись. С помощью данного свойства можно организовать счетчик записей, чтобы обеспечить уникальное значение этого поля. Тогда поле с автоинкрементом можно использовать, как поле первичного ключа (Primary Key).
Примечание. Автоинкремент можно установить только для полей с типом данных Long.
'Объявляем переменную
Dim F1 As Field
'Создаем поле
Set F1 = NewTbl.CreateField (“ID”, dbLong)
'Устанавливаем свойства автоинкремента
F1.Attributies = dbAuotoIncrField
'Добавляем к таблице
NewTbl.Fields.Append F1
Другое факультативное значение – updatable позволяет разрешать или запрещать изменение поля. Обычно эта установка не используется при начальном создании поля.
Другие константы, которые можно использовать вместе со свойством Attributes, приведены ниже. Этому свойству можно задавать сложные значения, для чего следует объединить значения отдельных констант и присвоить свойству их сумму.
Константа |
Функция |
dbFixedField |
Длина поля – фиксирована |
dbVariebleField |
Длина поля может изменяться (только для текстовых) |
dbAuotoIncrField |
Ядро БД автоматически увеличивает значение поля |
dbUpdatableField |
Значение поля может изменяться |
Кроме свойств Attributes для отдельных полей можно определять некоторые другие свойства. Для изменения значений этих свойств, также как и для свойства Attributes, используются операторы присваивания; эти значения нельзя установить при вызове метода CreateField.
Свойство |
Комментарии |
AllowZeroLenght |
Определяет, может ли поле Text или Memo иметь нулевую длину. Значение True – разрешает ввод пустых строк. |
DefaulValue |
Позволяет задавать значение поля по умолчанию |
Required |
Определяет, обязательно ли поле должно иметь значение |
ValidationRule |
Устанавливает условие, которому должно отвечать поле для того, чтобы запись можно было обновить |
ValidationText |
Определяет сообщение об ошибке, выводимое в том случае, когда нарушается правило проверки достоверности поля(ValidationRule) |
'Объявляем переменные
Dim F3 As Field
'Устанавливаем имя, тип и размер поля
Set F3 = NewTbl.CreateField (“Age”, dbInteger)
'Устанавливаем факультативные свойства
F3.ValidationRule = “Age” > 0
F3.ValidationText = “Возраст должен быть больше 0”
'Добавляем к таблице
NewTbl.Fields.Append F3
