Поделиться через


Коллекция баз данных (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