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

Перебрать записи в таблице можно так:


Sub SOZD()

 

Dim RS As Recordset

Dim R

 

Set RS = CurrentDb.TableDefs("Titles").OpenRecordset

RS.MoveLast

RS.MoveFirst

For R = 1 To RS.RecordCount

Debug.Print RS(1)

RS.MoveNext

Next

End Sub


Добавлено через 23 секунды
Отбирай по условию

Добавлено через 8 минут
А вот создать таблицу...


Программное создание таблицы и ее полей в 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



Sub SOZD()

Dim TB As TableDef

Dim TB0 As TableDef

Dim myF As Field

Dim RS As Recordset

Dim RSn As Recordset

Dim R, c

Dim N, A

Dim Q As Field

 

Set TB = CurrentDb.CreateTableDef("NEV_t")

For R = 0 To CurrentDb.TableDefs("Titles").Fields.Count - 1

N = CurrentDb.TableDefs("Titles").Fields(R).Name

A = CurrentDb.TableDefs("Titles").Fields(R).Attributes

Set Q = CurrentDb.TableDefs("Titles").Fields(R)

 

Select Case R

Case 1 ' числовой (целое)

   Set myF = TB.CreateField(N, 3): TB.Fields.Append myF

Case 3 'числовой(длинное целое)

   Set myF = TB.CreateField(N, 4): TB.Fields.Append myF

Case 7 ' поле МЕМО

   Set myF = TB.CreateField(N, 12): TB.Fields.Append myF

Case Else ' текстовый (150 символов)

   Set myF = TB.CreateField(N, 10, 150): TB.Fields.Append myF

End Select

 

Next

CurrentDb.TableDefs.Append TB

CurrentDb.TableDefs.Refresh

 

Set RS = CurrentDb.TableDefs("Titles").OpenRecordset

RS.MoveLast

RS.MoveFirst

For R = 1 To RS.RecordCount

 

If RS(1) = 1994 Then

    Set RSn = CurrentDb.OpenRecordset("NEV_t")

    RSn.AddNew

        For c = 0 To CurrentDb.TableDefs("Titles").Fields.Count - 1

            RSn(c) = RS(c)

        Next

    RSn.Update

End If

RS.MoveNext

Next

End Sub

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