Compartilhar via


Método Workspace.OpenConnection (DAO)

Aplica-se ao: Access 2013, Office 2013

Sintaxe

expressão . OpenConnection(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

String

Uma expressão de cadeia de caracteres Consulte a discussão em Comentários.

Opções

Opcional

Variant

Define as várias opções para a conexão, como especificado em Comentários. Com base nessa valor, o gerenciador do driver ODBC solicita ao usuário informações de conexão, como o DSN (Nome da fonte de dados), o nome do usuário e a senha.

ReadOnly

Opcional

Variant

True se a conexão tiver que ser aberta para acesso somente leitura, e False se a conexão tiver que ser aberta para acesso de leitura/gravação (padrão).

Connect

Opcional

Variant

Uma cadeia de caracteres de conexão ODBC. Consulte a propriedade Connect para obter os elementos específicos e a sintaxe dessa cadeia de caracteres. É necessário incluir antes "ODBC;".

Valor de retorno

Conexão

Comentários

Use o método OpenConnection para estabelecer uma conexão com uma fonte de dados ODBC a partir de um espaço de trabalho ODBCDirect. O método OpenConnection é semelhante mas não igual a OpenDatabase. A principal diferença é que OpenConnection está disponível em um espaço de trabalho ODBCDirect.

Se você especificar um DSN (nome de fonte de dados) ODBC registrado no argumento de conexão, o argumento de nome poderá ser qualquer cadeia de caracteres válida e também fornecerá a propriedade Name para o objeto Connection . Se um DSN válido não estiver incluído no argumento de conexão, o nome deverá se referir a um DSN ODBC válido, que também será a propriedade Name . Se nem o nome nem a conexão contiver um DSN válido, o gerenciador de driver ODBC poderá ser definido (por meio do argumento de opções) para solicitar ao usuário as informações de conexão necessárias. O DSN é fornecido pela solicitação e depois fornece a propriedade Name.

O argumento de opções determina se e quando solicitar que o usuário estabeleça a conexão e se deve ou não abrir a conexão de forma assíncrona. Você pode usar uma das constantes a seguir.

Constante

Descrição

dbDriverNoPrompt

O Gerenciador de Driver ODBC usa a cadeia de caracteres de conexão fornecida em dbname e connect. Se você não fornecer informações suficientes, ocorrerá um erro em tempo de execução.

dbDriverPrompt

O Gerenciador de driver ODBC exibe a caixa de diálogo Fontes de Dados ODBC, que mostra quaisquer informações relevantes fornecidas em dbname ou connect. A sequência de conexão é composta pelo DSN que o usuário seleciona via caixas de diálogo ou, se o usuário não especificar um DSN, pelo DSN padrão.

dbDriverComplete

Padrão. Se o argumento connect incluir todas as informações necessárias para estabelecer a conexão, o Gerenciador de driver ODBC utilizará a sequência em connect. Caso contrário, ele se comportará da mesma forma como quando você especifica dbDriverPrompt.

dbDriverCompleteRequired

Essa opção se comporta como dbDriverComplete exceto pelo fato de que o driver ODBC desabilita as solicitações para qualquer informação não exigida para estabelecer a conexão.

dbRunAsync

Execute o método de modo assíncrono. Essa constante pode ser usada com quaisquer outras constantes options.

OpenConnection retorna um objeto Connection que contém informações sobre a conexão. O objeto Connection é semelhante ao objeto Database. A principal diferença é que um objeto Database normalmente representa um banco de dados, embora ele possa ser usado para representar uma conexão com uma fonte de dados ODBC no espaço de trabalho do Microsoft Access.

Exemplo

Este exemplo usa o método OpenConnection com parâmetros diferentes para abrir três objetos Connection diferentes.

Sub OpenConnectionX() 
 
 Dim wrkODBC As Workspace 
 Dim conPubs As Connection 
 Dim conPubs2 As Connection 
 Dim conPubs3 As Connection 
 Dim conLoop As Connection 
 
 ' Create ODBCDirect Workspace object. 
 Set wrkODBC = CreateWorkspace("NewODBCWorkspace", _ 
 "admin", "", dbUseODBC) 
 
 ' Open Connection object using supplied information in 
 ' the connect string. If this information were 
 ' insufficient, you could trap for an error rather than 
 ' go to an ODBC Driver Manager dialog box. 
 MsgBox "Opening Connection1..." 
 
 ' 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 conPubs = wrkODBC.OpenConnection("Connection1", _ 
 dbDriverNoPrompt, , _ 
 "ODBC;DATABASE=pubs;DSN=Publishers") 
 
 ' Open read-only Connection object based on information 
 ' you enter in the ODBC Driver Manager dialog box. 
 MsgBox "Opening Connection2..." 
 Set conPubs2 = wrkODBC.OpenConnection("Connection2", _ 
 dbDriverPrompt, True, "ODBC;DSN=Publishers;") 
 
 ' Open read-only Connection object by entering only the 
 ' missing information in the ODBC Driver Manager dialog 
 ' box. 
 MsgBox "Opening Connection3..." 
 Set conPubs3 = wrkODBC.OpenConnection("Connection3", _ 
 dbDriverCompleteRequired, True, _ 
 "ODBC;DATABASE=pubs;DSN=Publishers;") 
 
 ' Enumerate the Connections collection. 
 For Each conLoop In wrkODBC.Connections 
 Debug.Print "Connection properties for " & _ 
 conLoop.Name & ":" 
 
 With conLoop 
 ' Print property values by explicitly calling each 
 ' Property object; the Connection object does not 
 ' support a Properties collection. 
 Debug.Print " Connect = " & .Connect 
 ' Property actually returns a Database object. 
 Debug.Print " Database[.Name] = " & _ 
 .Database.Name 
 Debug.Print " Name = " & .Name 
 Debug.Print " QueryTimeout = " & .QueryTimeout 
 Debug.Print " RecordsAffected = " & _ 
 .RecordsAffected 
 Debug.Print " StillExecuting = " & _ 
 .StillExecuting 
 Debug.Print " Transactions = " & .Transactions 
 Debug.Print " Updatable = " & .Updatable 
 End With 
 
 Next conLoop 
 
 conPubs.Close 
 conPubs2.Close 
 conPubs3.Close 
 wrkODBC.Close 
 
End Sub 
 

Este exemplo demonstra o objeto Connection e a coleção Connections, abrindo um objeto Database do Microsoft Access e dois objetos Connection ODBCDirect e listando as propriedades disponíveis para cada objeto.

Sub ConnectionObjectX() 
 
 Dim wrkAcc as Workspace 
 Dim dbsNorthwind As Database 
 Dim wrkODBC As Workspace 
 Dim conPubs As Connection 
 Dim conPubs2 As Connection 
 Dim conLoop As Connection 
 Dim prpLoop As Property 
 
 ' Open Microsoft Access Database object. 
 Set wrkAcc = CreateWorkspace("NewWorkspace", _ 
 "admin", "", dbUseJet) 
 Set dbsNorthwind = wrkAcc.OpenDatabase("Northwind.mdb") 
 
 ' Create ODBCDirect Workspace object and open Connection 
 ' objects. 
 Set wrkODBC = CreateWorkspace("NewODBCWorkspace", _ 
 "admin", "", dbUseODBC) 
 
 ' Note: The DSNs referenced below must be configured to 
 ' use Microsoft Windows NT Authentication Mode to 
 ' authorize user access to the Microsoft SQL Server. 
 Set conPubs = wrkODBC.OpenConnection("Connection1", , , _ 
 "ODBC;DATABASE=pubs;DSN=Publishers") 
 
 Set conPubs2 = wrkODBC.OpenConnection("Connection2", , _ 
 True, "ODBC;DATABASE=pubs;DSN=Publishers") 
 
 Debug.Print "Database properties:" 
 
 With dbsNorthwind 
 ' Enumerate Properties collection of Database object. 
 For Each prpLoop In .Properties 
 On Error Resume Next 
 Debug.Print " " & prpLoop.Name & " = " & _ 
 prpLoop.Value 
 On Error GoTo 0 
 Next prpLoop 
 End With 
 
 ' Enumerate the Connections collection. 
 For Each conLoop In wrkODBC.Connections 
 Debug.Print "Connection properties for " & _ 
 conLoop.Name & ":" 
 
 With conLoop 
 ' Print property values by explicitly calling each 
 ' Property object; the Connection object does not 
 ' support a Properties collection. 
 Debug.Print " Connect = " & .Connect 
 ' Property actually returns a Database object. 
 Debug.Print " Database[.Name] = " & _ 
 .Database.Name 
 Debug.Print " Name = " & .Name 
 Debug.Print " QueryTimeout = " & .QueryTimeout 
 Debug.Print " RecordsAffected = " & _ 
 .RecordsAffected 
 Debug.Print " StillExecuting = " & _ 
 .StillExecuting 
 Debug.Print " Transactions = " & .Transactions 
 Debug.Print " Updatable = " & .Updatable 
 End With 
 
 Next conLoop 
 
 dbsNorthwind.Close 
 conPubs.Close 
 conPubs2.Close 
 wrkAcc.Close 
 wrkODBC.Close 
 
End Sub