Загрузка данных


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