Перебрать записи в таблице можно так:
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