Видеоуроки бесплатно!

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

Сказки на ночь

Проверка существования таблицы в базе данных 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

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


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