Я видел такой фрагмент кода, в котором используются некоторые свойства полей таблицы, но я не могу найти там нужного сойства.
- Код: Выделить всё
Public Sub ADOXCreateTable()
'создание новой таблицы tblOrders с тремя полями:
'idOrder - последовательный счетчик, ключевое поле таблицы
'NumOrder - текстовое, 12 символов, с условием на значение и сообщением об ошибке
'dtOrder - дата, значение по умолчанию равно Date()
'проверка на существование таблицы и обработчик ошибок умышленно не включены для упрощения кода
Dim adoxCat As ADOX.Catalog
Dim adoxTbl As New ADOX.Table
Dim adoxCol As ADOX.Column
Set adoxCat = New ADOX.Catalog
'получаем ссылку на текущую БД
adoxCat.ActiveConnection = CurrentProject.Connection
With adoxTbl
.Name = "tblOrders" 'имя таблицы
' создаем новый объект Column (он же поле таблицы)
Set adoxCol = New ADOX.Column
With adoxCol
.ParentCatalog = adoxCat 'ссылка на каталог
.Name = "id" 'имя поля
.Type = adInteger 'тип поля
.Properties("AutoIncrement").Value = True ' будет счетчик
End With
.Columns.Append adoxCol, adInteger ' добавляем поле в коллекцию
'добавляем новый индекс
.Keys.Append "PrimaryKey", adKeyPrimary, "id"
'аналогично для всех полей таблицы
' поле № заказа
Set adoxCol = New ADOX.Column
With adoxCol
.ParentCatalog = adoxCat
.Name = "NumOrder"
.Type = adVarWChar 'тип поля
.DefinedSize = 12
.Properties("Description").Value = "№ заказа"
'условие на значение
.Properties("Jet OLEDB:Column Validation Rule").Value = "<>'' and not is null"
'сообщение о нарушении условия на значение
.Properties("Jet OLEDB:Column Validation Text").Value = "Укажите номер заказа"
End With
.Columns.Append adoxCol, adVarWChar
' поле дата заказа
Set adoxCol = New ADOX.Column
With adoxCol
.ParentCatalog = adoxCat
.Name = "dtOrder"
.Type = adDate 'тип поля
.Properties("Description").Value = "Дата заказа"
.Properties("Default").Value = "date()" ' значение по умолчанию
End With
.Columns.Append adoxCol, adDate
'добавляем таблицу в БД
adoxCat.Tables.Append adoxTbl
End With
Set adoxCat = Nothing
Set adoxTbl = Nothing
Set adoxCol = Nothing
End Sub