MyTetra Share
Делитесь знаниями!
Программное создание таблицы и ее полей в MS Access 2003
Время создания: 16.03.2019 23:43
Текстовые метки: Типы полей
Раздел: !Закладки - VBA - Access
Запись: xintrea/mytetra_db_adgaver_new/master/base/1537864978ilgxpgdptj/text.html на raw.githubusercontent.com

Программное создание таблицы и ее полей в MS Access 2003


Задача: создать в базе данных MS Acces 2003 таблицу, в таблице ключевое поле типа счетчик, поля с разными типами данных
Способ решения:

Sub СоздатьТаблицу()

Dim db As Database ' бд, в которой будет создаваться таблица

Dim Tbl As TableDef ' создаваемая таблица

 

Dim Fld1 As Field ' добавляемое поле

Dim Fld2 As Field

Dim Fld3 As Field

Dim Fld4 As Field

Dim Fld5 As Field

Dim Fld6 As Field

Dim Fld7 As Field

Dim Fld8 As Field

Dim Fld9 As Field

Dim Fld10 As Field

Dim Fld11 As Field

Dim Fld12 As Field

Dim Fld15 As Field

Dim Fld16 As Field

 

 

Dim Indx As Index ' индекс таблицы

Dim IndxFld As Field ' поле индекса таблицы

 

' определяю бд, в которой создаю таблицу

Set db = CurrentDb

' создаю таблицу

Set Tbl = db.CreateTableDef("Таблица")

' ========================================

' создаю ключевое поле

Set Fld1 = Tbl.CreateField("КлючевоеПоле", dbLong)

' делаю  поле счетчиком

 Fld1.Attributes = Fld1.Attributes + dbAutoIncrField

' добавляю поле в таблицу

Tbl.Fields.Append Fld1

' создаю индекс по полю "КлючевоеПоле"

Set Indx = Tbl.CreateIndex("Ключевое поле")

Set IndxFld = Indx.CreateField("КлючевоеПоле", dbLong)

' добавляю индекс

Indx.Fields.Append IndxFld

' делаю  первичным ключем

Indx.Primary = True

' добавляю индекс

Tbl.Indexes.Append Indx

 

' ========================================

' создаю  поле. тип данных -- логический

Set Fld2 = Tbl.CreateField("Поле1", 1)

Tbl.Fields.Append Fld2

 

' ========================================

' создаю  поле. тип данных -- числовой (байт)

Set Fld2 = Tbl.CreateField("Поле2", 2)

Tbl.Fields.Append Fld2

 

 

' ========================================

' создаю  поле. тип данных -- числовой (целое)

Set Fld3 = Tbl.CreateField("Поле3", 3)

Tbl.Fields.Append Fld3

 

 

' ========================================

' создаю  поле. тип данных -- числовой(длинное целое)

Set Fld4 = Tbl.CreateField("Поле4", 4)

Tbl.Fields.Append Fld4

 

 

' ========================================

' создаю  поле. тип данных -- денежный

Set Fld5 = Tbl.CreateField("Поле5", 5)

Tbl.Fields.Append Fld5

 

 

' ========================================

' создаю  поле. тип данных -- числовой (Одинарное с плавающей точкой)

Set Fld6 = Tbl.CreateField("Поле6", 6)

Tbl.Fields.Append Fld6

 

 

' ========================================

' создаю  поле. тип данных -- числовой (Двойное с плавающей точкой)

Set Fld7 = Tbl.CreateField("Поле7", 7)

Tbl.Fields.Append Fld7

 

 

' ========================================

' создаю  поле. тип данных -- дата/время

Set Fld8 = Tbl.CreateField("Поле8", 8)

Tbl.Fields.Append Fld8

 

 

' ========================================

' создаю  поле. тип данных -- двоичный

Set Fld9 = Tbl.CreateField("Поле9", 9)

Tbl.Fields.Append Fld9

 

 

' ========================================

' создаю  поле. тип данных -- текстовый (150 символов)

Set Fld10 = Tbl.CreateField("Поле10", 10, 150)

Tbl.Fields.Append Fld10

 

 

' ========================================

' создаю  поле. тип данных -- поле объекта

Set Fld11 = Tbl.CreateField("Поле11", 11)

Tbl.Fields.Append Fld11

 

 

' ========================================

' создаю  поле. тип данных -- поле МЕМО

Set Fld12 = Tbl.CreateField("Поле12", 12)

Tbl.Fields.Append Fld12

 

 

' ========================================

' создаю  поле. тип данных -- числовой (код репликации)

Set Fld15 = Tbl.CreateField("Поле15", 15)

Tbl.Fields.Append Fld15

 

 

' ========================================

' создаю  поле. тип данных -- числовой (действительное)

Set Fld16 = Tbl.CreateField("Поле16", 16)

Tbl.Fields.Append Fld16

 

 

 

' добавляю таблицу

db.TableDefs.Append Tbl

' обновляю данные о таблицах

db.TableDefs.Refresh

 

 

Set db = Nothing

End Sub

 



Примечания:
возможно (и даже наверняка) существует более оптимальный и красивый код для выполнения поставленой задачи, но я использовал приведенный здесь.

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования