Sub CreateTableVedomost()
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_Vedomost"
idx.Fields.Append idx.CreateField("НомерЗачКнижки")
idx.Fields.Append idx.CreateField("НомерДисциплины")
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("НомерДисциплины", dbLong)
tdf.Fields.Append fld
Set fld = tdf.CreateField("НомерПреподавателя", dbLong)
tdf.Fields.Append fld
Set fld = tdf.CreateField("ЗачтеноНезачтено", dbText, 50)
tdf.Fields.Append fld
Set fld = tdf.CreateField("Оценка", dbByte)
tdf.Fields.Append fld
Set fld = tdf.CreateField("ДатаСдачи", dbDate)
tdf.Fields.Append fld
tdf.Fields.Refresh
dbs.TableDefs.Append tdf
dbs.TableDefs.Refresh
Set dbs = Nothing
MsgBox "Таблица 'Зачетная ведомость' создана"
End Sub