Option Compare Database
Option Explicit
Sub CreateTableOtlichnikiKey()
Dim dbs As Database, tdf As TableDef, fld As Field, idx As Index
Dim tName As String
Set dbs = CurrentDb
tName = "Студенты отличники"
' Удаляем таблицу, если уже существует
Call DropTable(tName)
Set tdf = dbs.CreateTableDef(tName)
' --- Создаём индекс (первичный ключ) на поле №зач_книжки ---
Set idx = tdf.CreateIndex
idx.Name = "PK_ЗачКнижки"
idx.Fields.Append idx.CreateField("НомерЗачКнижки")
idx.Primary = True ' делаем первичным ключом
tdf.Indexes.Append idx
tdf.Indexes.Refresh
' --- Создаём поля таблицы ---
Set fld = tdf.CreateField("НомерЗачКнижки", dbLong)
tdf.Fields.Append fld
Set fld = tdf.CreateField("ФИО", dbText, 255)
tdf.Fields.Append fld
Set fld = tdf.CreateField("НаименованиеДисциплины", dbText, 255)
tdf.Fields.Append fld
Set fld = tdf.CreateField("Оценка", dbByte)
tdf.Fields.Append fld
tdf.Fields.Refresh
dbs.TableDefs.Append tdf
dbs.TableDefs.Refresh
Set dbs = Nothing
MsgBox "Таблица 'Студенты отличники' создана с первичным ключом"
End Sub
Sub DropTable(tName As String)
Dim dbs As Database, i As Integer
Set dbs = CurrentDb
For i = 0 To dbs.TableDefs.Count - 1
If dbs.TableDefs(i).Name = tName Then
dbs.TableDefs.Delete tName
dbs.TableDefs.Refresh
Exit For
End If
Next
Set dbs = Nothing
End Sub