VBA, MS Access MS Access в примерах

Создание Таблицы (DAO)

Private Sub CreateTempTable()
'Создание временной Таблицы с кодами подлежащими удалению
'--------------------------------------------------------------------
Const strTableName As String = "tmpДубли" 'Название таблицы
Dim tbl As DAO.TableDef       'объект таблица
Dim idx As DAO.Index          'объект индекс
Dim fld As DAO.Field          'объект поле

'Удаяем прошлое
On Error Resume Next
    CurrentDb.TableDefs.Delete strTableName
    Err.Clear
    
On Error GoTo CreateTempTableErr

'создание объектной переменной таблицы, полей и индекса в ней
    Set tbl = CurrentDb.CreateTableDef(strTableName)
    With tbl
        .Fields.Append tbl.CreateField("Max_ID", dbLong)
            'создание уникального индекса
            Set idx = .CreateIndex("Primary Key")
                With idx
                    'добавление поля в индекс
                    .Fields.Append .CreateField("Max_ID")
                    'Установка свойств индекса
                    .Unique = True   'Уникальный
                    .Primary = True  'Первичный
                End With
            .Indexes.Append idx
           'индекс создан
    End With
'Фактическое добавление таблицы из объектной переменной описанной выше
    CurrentDb.TableDefs.Append tbl
CreateTempTableBye:
    On Error Resume Next
    Set idx = Nothing
    Set fld = Nothing
    Set tbl = Nothing
    Exit Sub

CreateTempTableErr:
    MsgBox "Произошла ошибка при выполнении процедуры " & _
    "[CreateTempTable] :" & vbCrLf & _
    Err.Description & vbCrLf & _
    "Номер ошибки = " & Err.Number, vbCritical
    Resume CreateTempTableBye
End Sub


Назад ToTop
L.E. 08.08.2023
Рейтинг@Mail.ru