Compartir a través de


Colección Databases (DAO)

Se aplica a: Access 2013, Office 2013

Una colección Databases contiene todos los objetos Database abiertos o creados en un objeto Workspace.

Comentarios

Al abrir un objeto Database existente o crear uno nuevo desde un objeto Workspace, éste se agrega automáticamente a la colección Databases. Al cerrar un objeto Database con el método Close, éste se quita de la colección Databases pero no se elimina del disco. Debe cerrar todos los objetos Recordset abiertos antes de cerrar un objeto Database.

En un área de trabajo de Microsoft Access, el valor de la propiedad Name de una base de datos es una cadena que especifica la ruta del archivo de base de datos.

Para hacer referencia a un objeto Database en una colección mediante su número ordinal o mediante el valor de la propiedad Name, utilice una de las formas sintácticas siguientes:

  • Bases de datos(0)

  • Databases("name")

  • Bases de datos [nombre]

Nota:

[!NOTA] Puede abrir el mismo origen de datos o base de datos varias veces creando nombres duplicados en la colección Databases. Debe asignar objetos Database a variables de objeto y hacer referencia a ellas mediante el nombre de variable.

Ejemplo

En este ejemplo se crea un nuevo objeto Database y se abre un objeto Database existente en el objeto Workspace predeterminado. Después, se enumera la colección Database y la colección Properties de cada objeto 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 
 

En este ejemplo se usa CreateDatabase para crear un objeto Database nuevo y cifrado.

    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