MyTetra Share
Делитесь знаниями!
Программное создание базы данных (ADO)
19.07.2018
06:33
Текстовые метки: VBA, CreateDataBase, создание базы данных
Раздел: VBA - Access - msa.polarcom.ru - 01 Базы Данных

Программное создание базы данных (ADO)

'==================================================================================================

'##### Создаем новую базу ADO: http://msa.polarcom.ru/st/s0000353.htm

Private Sub test_funCreateDataBaseADO()

blnfunCreateDataBaseADO = funCreateDataBaseADO(True, ThisWorkbook.Path & "\" & "NewDB.accdb") '"NewDB.mdb"

End Sub

'--------------------------------------------------------------------------------------------------

Function funCreateDataBaseADO(ByVal blnReCreate As Boolean, _

ByVal newDB As String) As Boolean

'Данная процедура создает новую базу данных с использованием возможностей ADOx.

'необходимо установить ссылку на библиотеку Microsoft ADO Ext. 2.1 For DDL and Security

Dim cat As ADOX.Catalog

Dim m As Variant, strExt As String, strError As String


Err.Clear

On Error GoTo Proc_Err


'считываем расширение файла

'----------------------------------

If Len(newDB) > 0 Then

m = Split(newDB, ".", -1, vbTextCompare)

strExt = m(UBound(m))

Erase m

Else 'выход если файл не задан

strError = "#=================================================" & vbCrLf & _

" " & "funCreateDataBaseADO" & "-" & vbCrLf & _

"Не удалость считать расширение файла" & vbCrLf & "( " & newDB & " )" & vbCrLf & _

"#-------------------------------------------------" & vbCrLf

Resume Proc_Err

End If


'определяем строку подключения в соответствии с форматом создаваемого файла

'----------------------------------

Select Case strExt

Case "mdb": strProvider = "provider=Microsoft.JET.OLEDB.4.0;data source="

Case "accdb": strProvider = "provider=Microsoft.ACE.OLEDB.12.0;Data Source="

Case Else

End Select

'Объект Catalog в ADOx

'----------------------------------

If Dir(newDB) <> "" Then 'Проверка на существование файла

If blnReCreate Then 'Если задано пересоздание

Kill newDB 'Уничтожаем старую базу данных

Else

funCreateDataBaseADO = True

GoTo Proc_Exit 'Выход

End If

End If

Set cat = New ADOX.Catalog

cat.Create (strProvider & newDB) 'Создаем базу

Set cat = Nothing

'----------------------------------

Proc_Exit:

Exit Function

Proc_Err:

If Len(strError) = 0 Then

Debug.Print "#=================================================" & vbCrLf & _

" " & "funCreateDataBaseADO" & "-" & vbCrLf & _

Err.Description & vbCrLf & "(" & newDB & ")" & vbCrLf & _

"#-------------------------------------------------"

Else

Debug.Print strError ': MsgBox strError

End If

Resume Proc_Exit

End Function

'----------------------------------

'==================================================================================================


Прислал: Сонных Дмитрий (aka Joss) sonni-dim@mail.ru

С помощью ADO можно легко изменять структуру данных. Для создания и изменения таблиц, запросов и других объектов данных, например индексов, следует использовать специальную библиотеку ADO, называемую ADOx. Перед использованием ADOx необходимо установить ссылку на библиотеку Microsoft ADO Ext. 2.1 For DDL and Security, выполнив команды меню Tools | References (Сервис | Ссылки) в VBE.
Если ссылка установлена, ADOx готов к использованию.
При использовании ADOx все операции так или иначе связаны с объектом Catalog. Этот объект представляет базу данных. Работая в Access, необходимо всего лишь присвоить свойству ActiveConnection объекта Catalog допустимое значение, соответствующее объекту ADO Command, с которого начинается выполнение.
Создание базы данных
Для создания с помощью ADOx новой пустой базы данных необходимо использовать метод Create объекта Catalog, передав ему значение, содержащее путь и имя создаваемой базы данных.

Sub CreateDataBaseADO(newDB As String)

'Данная процедура создает новую базу данных с использованием возможностей ADOx.

'По материалам книги "Microsoft Access 2000 Development Unleashed" издательства SAMS

'Авторы: Forte, Howe, Ralston

'Объект Catalog в ADOx

Dim cat As ADOx.Catalog

On Error GoTo Proc_Err

Set cat = New ADOx. Catalog

cat.Create "provider=Microsoft.JET.OLEDB.4.0;data source=" & newDB

MsgBox "Database Created!", vbInformation

Proc_Exit:

Exit Sub


Proc_Err:

MsgBox Err.Description

Resume Proc_Exit

End Sub




Перед использованием ADOx необходимо установить ссылку на библиотеку Microsoft ADO Ext. 2.X For DDL and Security, выполнив команды меню Tools -> References (Сервис -> Ссылки) в VBE.

 
MyTetra Share v.0.52
Яндекс индекс цитирования