Коллекция баз данных (DAO)
Область применения: Access 2013, Office 2013
Коллекция Баз данных содержит все открытые объекты Базы данных, открытые или созданные в объекте Workspace .
Замечания
При открытии существующего объекта Database или создании нового из рабочей области он автоматически добавляется в коллекцию Баз данных . При закрытии объекта Database с помощью метода Close он удаляется из коллекции Databases , но не удаляется с диска. Перед закрытием объекта Database следует закрыть все открытые объекты Recordset.
В рабочей области Microsoft Access параметр свойства Name базы данных представляет собой строку, указывающую путь к файлу базы данных.
Чтобы ссылаться на объект Database в коллекции по порядковому номеру или параметру свойства Name , используйте любую из следующих форм синтаксиса:
Базы данных(0)
Databases("name")
Базы данных! [имя]
Примечание.
Вы можете открывать один источник данных или базу данных несколько раз, создавая дублирующие имена в коллекции Databases. Вы должны назначить объекты Database для переменных объекта и ссылаться на них по имени переменной.
Пример
В этом примере создается новый объект Database и открывается существующий объект Database в объекте Workspace, используемом по умолчанию. Затем выполняется перечисление коллекции Database и коллекции Properties каждого объекта Database.
Sub DatabaseObjectX()
Dim wrkAcc As Workspace
Dim dbsNorthwind As Database
Dim dbsNew As Database
Dim dbsLoop As Database
Dim prpLoop As Property
Set wrkAcc = CreateWorkspace("AccWorkspace", "admin", _
"", dbUseJet)
' Make sure there isn't already a file with the name of
' the new database.
If Dir("NewDB.mdb") <> "" Then Kill "NewDB.mdb"
' Create a new database with the specified
' collating order.
Set dbsNew = wrkAcc.CreateDatabase("NewDB.mdb", _
dbLangGeneral)
Set dbsNorthwind = wrkAcc.OpenDatabase("Northwind.mdb")
' Enumerate the Databases collection.
For Each dbsLoop In wrkAcc.Databases
With dbsLoop
Debug.Print "Properties of " & .Name
' Enumerate the Properties collection of each
' Database object.
For Each prpLoop In .Properties
If prpLoop <> "" Then Debug.Print " " & _
prpLoop.Name & " = " & prpLoop
Next prpLoop
End With
Next dbsLoop
dbsNew.Close
dbsNorthwind.Close
wrkAcc.Close
End Sub
В этом примере используется метод CreateDatabase для создания нового зашифрованного объекта Database.
Sub CreateDatabaseX()
Dim wrkDefault As Workspace
Dim dbsNew As DATABASE
Dim prpLoop As Property
' Get default Workspace.
Set wrkDefault = DBEngine.Workspaces(0)
' Make sure there isn't already a file with the name of
' the new database.
If Dir("NewDB.mdb") <> "" Then Kill "NewDB.mdb"
' Create a new encrypted database with the specified
' collating order.
Set dbsNew = wrkDefault.CreateDatabase("NewDB.mdb", _
dbLangGeneral, dbEncrypt)
With dbsNew
Debug.Print "Properties of " & .Name
' Enumerate the Properties collection of the new
' Database object.
For Each prpLoop In .Properties
If prpLoop <> "" Then Debug.Print " " & _
prpLoop.Name & " = " & prpLoop
Next prpLoop
End With
dbsNew.Close
End Sub