Познавательное

Проверка существования таблицы в базе данных Access

  

В одном из следующих разделов рассматривается добавление новой таблицы в существующую базу данных Access. Естественно, что добавить новую таблицу сможет только один пользователь, тот, кто первым откроет рабочую книгу и тем самым инициирует выполнение соответствующего макроса. Функция TableExists проверяет существование таблицы с указанным именем в базе данных Transfers .mdb с помощью метода OpenSchema.

Function TableExists(WhichTable)
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim fid As ADODB.Field
TableExists = False
'  Задать путь к базе данных Transfers.mdb.
MyConn = ThisWorkbook.Path & Application.PathSeparator
& "transfers.mdb"
Set cnn = New ADODB.Connection
With cnn
.Provider =  "Microsoft.Jet.OLEDB.4.0"
.Open MyConn
End With
Set rst = cnn.OpenSchema(adSchemaTables)
Do Until rst.EOF
If LCase(rst!Table_Name)  = LCase(WhichTable) Then
TableExists = True
GoTo ExitMe
End If
rst.MoveNext
Loop
ExitMe:
rst.Close
Set rst = Nothing
'  Закрыть  соединение.
cnn.Close
End Function


Проверка существования поля в таблице базы данных Access
В одном из следующих разделов рассматривается добавление нового поля в таблицу базы данных Access. Функция ColumnExists проверяет существование поля с указанным именем в заданной таблице базы данных Transfers . mdb.
Function ColumnExists(WhichColumn, WhichTable)
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim WSOrig As Worksheet
Dim WSTemp As Worksheet
Dim fid As ADODB.Field
ColumnExists = False
'  Задать путь к базе данных Transfers.mdb.
MyConn = ThisWorkbook.Path & Application.PathSeparator _
& "transfers.mdb"
Set cnn = New ADODB.Connection
With cnn
.Provider =  "Microsoft.Jet.OLEDB.4.0"
.Open MyConn
End With
Set rst
= cnn.OpenSchema(adSchemaColumns)
Do Until rst.EOF
If LCase(rst!Column_Name)
LCase(rst!Table_Name)
ColumnExists = True
GoTo ExitMe
End If
rst.MoveNext
Loop
ExitMe:
rst.Close
Set rst = Nothing
'  Закрыть  соединение.
cnn.Close
End Function
LCase(WhichColumn) And
LCase(WhichTable) Then


Добавление таблицы в базу данных Access
Следующий макрос добавляет таблицу tblReplenish в базу данных Transfers .mdb с помощью команды S Q L CRE ATE TABLE.
Sub ADOCreateReplenish()
'  Этот макрос создает таблицу tblReplenish
'  в базе данных Transfers. mdb.
'  Таблица tblReplenish имеет 5 полей.
'   1. Товар.
'   2.  Кат1  - минимальный уровень  запасов товара 
' магазинов  1-й категории.
'   3.  Кат2  - минимальный уровень  запасов товара
'        магазинов 2-й категории.
'   4.  КатЗ  - минимальный уровень  запасов товара
'        магазинов  3-й категории.
'   5.  Активна  - поле "Да/Нет".
Dim cnn As ADODB. Connection
Dim cmd As ADODB. Command
'  Задать  путь к базе данных.
MyConn = ThisWorkbook. Path & Application. PathSeparator _
& "transfers. mdb"
Открыть  соединение.
Set cnn = New ADODB. Connection
With cnn
.Provider =  "Microsoft.Jet. OLEDB.4.0"
.Open MyConn
End With
Set cmd = New ADODB. Command
Set cmd.ActiveConnection = cnn
'  Создать таблицу.
cmd.CommandText = "CRE ATE TABLE tblReplenish (Товар Char(lO)
Primary Key,   Кат1  int,   Кат2  int,   КатЗ  Int,  Активна YesNo)"
cmd.Execute  ,   , adCmdText
Set cmd = Nothing
Set cnn = Nothing
Exit Sub
End Sub


Добавление поля в таблицу базы данных Access
Следующий макрос добавляет поле Группа в таблицу tblReplenish зы данных Trans f er s . mdb с помощью команды SQL ALTER TABLE.
Проверка существования таблицы в базе данных Access

Следующая глава посвящена созданию модулей классов, предназначенных для размещения пользовательских объектов.
 


Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.