Compartilhar via


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