Objeto de banco de dados (DAO)
Aplica-se ao: Access 2013, Office 2013
Um objeto de Banco de dados representa um banco de dados aberto.
Comentários
Você usa o objeto Database e seus métodos e propriedades para manipular um banco de dados aberto. Em qualquer tipo de banco de dados, você pode:
Usar o método Execute para executar uma consulta ação.
Definir a propriedade Connect para estabelecer uma conexão com uma fonte de dados ODBC.
Definir a propriedade QueryTimeout para limitar a duração do tempo para aguardar a execução de uma consulta na fonte de dados ODBC.
Usar a propriedade RecordsAffected para determinar quantos registros foram alterados por uma consulta ação.
Usar o método OpenRecordset para executar uma consulta seleção e criar um objeto Recordset.
Usar a propriedade Version para determinar qual versão de um mecanismo de banco de dados criou o banco de dados.
Com um banco de dados do mecanismo do Microsoft Access, você também pode usar outros métodos, propriedades e coleções para manipular um objeto Database, bem como criar, modificar ou obter informações sobre suas tabelas, consultas e relações. Por exemplo, você pode:
Usar os métodos CreateTableDef e CreateRelation para criar tabelas e relações, respectivamente.
Usar o método CreateProperty para definir novas propriedades Database.
Usar o método CreateQueryDef para criar uma definição de consulta persistente ou temporária.
Usar os métodos MakeReplica, Synchronize e PopulatePartial para criar e sincronizar total ou parcialmente as réplicas do banco de dados.
Definir a propriedade CollatingOrder para estabelecer a ordem alfabética de classificação para os campos baseados em caracteres, em diferentes idiomas.
Você usa o método CreateDatabase para criar um objeto Database persistente que é automaticamente acrescentado à coleção Databases e salvo, posteriormente, no disco.
Você não precisa especificar o objeto DBEngine ao utilizar o método OpenDatabase.
Abrir um banco de dados com tabelas vinculadas não estabelece automaticamente os links para os arquivos externos especificados. Você deve fazer referência aos objetos TableDef ou Field da tabela ou abrir um objeto Recordset. Se você não puder estabelecer links com essas tabelas, ocorrerá um erro interceptável. Talvez seja necessário ter permissão de acesso ao banco de dados ou outro usuário pode ter aberto o banco de dados de forma exclusiva. Nesses casos, ocorrerá um erro interceptável.
Quando um procedimento que declara um objeto Database é executado, os objetos Database locais são fechados junto com qualquer objeto Recordset aberto. Quaisquer atualizações pendentes são perdidas e quaisquer transações pendentes são revertidas, mas não ocorre nenhum erro interceptável. Você deve concluir explicitamente as transações ou as edições pendentes e fechar os objetos Recordset e Database antes de sair dos procedimentos que declaram essas variáveis de objeto localmente.
Quando você usa um dos métodos de transação (BeginTrans, CommitTrans ou Rollback) no objeto Workspace, essas transações são aplicadas a todos os bancos de dados abertos no Workspace a partir do qual o objeto Database foi aberto. Se você quiser usar transações independentes, deverá primeiro abrir um objeto Workspace adicional e, em seguida, abrir outro objeto Database naquele objeto Workspace.
Observação
[!OBSERVAçãO] Você pode abrir a mesma fonte de dados ou o mesmo banco de dados mais de uma vez, criando nomes duplicados na coleção Databases. Você deve atribuir objetos Database a variáveis de objeto e fazer referência a eles por nome de variável.
Exemplo
Este exemplo cria um novo objeto Database e abre um objeto Database existente no objeto Workspace padrão. Em seguida, ele enumera a coleção Database e a coleção 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("AccessWorkspace", "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
Este exemplo usa o CreateDatabase para criar um objeto Database novo e criptografado.
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