Método Workspace.OpenDatabase (DAO)
Aplica-se ao: Access 2013, Office 2013
Abre um banco de dados especificado em um objeto Workspace e retorna uma referência ao objeto Database que o representa.
Sintaxe
expressão . OpenDatabase(Name, Options, ReadOnly, Connect)
expressão Uma variável que representa um objeto Workspace.
Parâmetros
Nome |
Necessária/opcional |
Tipo de dados |
Descrição |
---|---|---|---|
Name |
Obrigatório |
CadeiaDeCaracteres |
O nome de um arquivo de banco de dados existente no mecanismo de banco de dados do Microsoft Access ou o DSN (Nome da fonte de dados) de uma fonte de dados ODBC. Consulte a propriedade Name para obter mais informações sobre a configuração desse valor. |
Opções |
Opcional |
Variant |
Define as várias opções para o banco de dados, como especificado em Comentários. |
ReadOnly |
Opcional |
Variant |
True se você quiser abrir o banco de dados com acesso somente leitura, ou False (padrão) se você quiser abrir o banco de dados com acesso de leitura/gravação. |
Connect |
Opcional |
Variant |
Especifica várias informações de conexão, incluindo senhas. |
Valor de retorno
Banco de dados
Comentários
Você pode usar os seguintes valores para o argumento de opções.
Setting |
Descrição |
---|---|
Verdadeiro |
Abre o banco de dados no modo exclusivo. |
Falso |
(Padrão) Abre o banco de dados no modo compartilhado. |
Quando você abre um banco de dados, ele é automaticamente adicionado à coleção Databases.
Algumas considerações se aplicam ao usar o dbname:
Se ela se referir a um banco de dados que já foi aberto para acesso por outro usuário, ocorrerá um erro.
Se ela não se referir a um banco de dados existente ou validar o nome da fonte de dados ODBC, ocorrerá um erro.
Se for uma cadeia de caracteres de comprimento zero ("") e conectar for "ODBC" , será exibida uma caixa de diálogo listando todos os nomes de fonte de dados ODBC registrados para que o usuário possa selecionar um banco de dados.
Para fechar um banco de dados e, desse modo, remover o objeto Database da coleção Databases, use o método Close no objeto.
Observação
Ao acessar uma fonte de dados ODBC conectada ao mecanismo do banco de dados do Microsoft, você pode aprimorar o desempenho do aplicativo, abrindo um objeto Database conectado à fonte de dados ODBC, em vez de vincular objetos TableDef individuais para especificar tabelas na fonte de dados ODBC.
Exemplo
Este exemplo usa o método OpenDatabase para abrir um banco de dados do Microsoft Access e dois bancos de dados ODBC conectados ao mecanismo de banco de dados do Microsoft Access.
Sub OpenDatabaseX()
Dim wrkAcc As Workspace
Dim dbsNorthwind As Database
Dim dbsPubs As Database
Dim dbsPubs2 As Database
Dim dbsLoop As Database
Dim prpLoop As Property
' Create Microsoft Access Workspace object.
Set wrkAcc = CreateWorkspace("", "admin", "", dbUseJet)
' Open Database object from saved Microsoft Access database
' for exclusive use.
MsgBox "Opening Northwind..."
Set dbsNorthwind = wrkAcc.OpenDatabase("Northwind.mdb", _
True)
' Open read-only Database object based on information in
' the connect string.
MsgBox "Opening pubs..."
' Note: The DSN referenced below must be set to
' use Microsoft Windows NT Authentication Mode to
' authorize user access to the Microsoft SQL Server.
Set dbsPubs = wrkAcc.OpenDatabase("Publishers", _
dbDriverNoPrompt, True, _
"ODBC;DATABASE=pubs;DSN=Publishers")
' Open read-only Database object by entering only the
' missing information in the ODBC Driver Manager dialog
' box.
MsgBox "Opening second copy of pubs..."
Set dbsPubs2 = wrkAcc.OpenDatabase("Publishers", _
dbDriverCompleteRequired, True, _
"ODBC;DATABASE=pubs;DSN=Publishers;")
' Enumerate the Databases collection.
For Each dbsLoop In wrkAcc.Databases
Debug.Print "Database properties for " & _
dbsLoop.Name & ":"
On Error Resume Next
' Enumerate the Properties collection of each Database
' object.
For Each prpLoop In dbsLoop.Properties
If prpLoop.Name = "Connection" Then
' Property actually returns a Connection object.
Debug.Print " Connection[.Name] = " & _
dbsLoop.Connection.Name
Else
Debug.Print " " & prpLoop.Name & " = " & _
prpLoop
End If
Next prpLoop
On Error GoTo 0
Next dbsLoop
dbsNorthwind.Close
dbsPubs.Close
dbsPubs2.Close
wrkAcc.Close
End Sub