Partager via


Workspace.OpenConnection, méthode (DAO)

S’applique à : Access 2013, Office 2013

Syntaxe

expression . OpenConnection(Name, Options, ReadOnly, Connect)

expression Variable qui représente un objet Workspace.

Paramètres

Nom

Obligatoire/facultatif

Type de données

Description

Name

Obligatoire

String

Expression de chaîne. Reportez-vous à la section sous Notes.

Options

Facultatif

Variant

Définit différentes options pour la connexion, selon les indications dans les notes. En fonction de cette valeur, le gestionnaire de pilotes ODBC invite l'utilisateur à indiquer les informations de connexion comme le nom de la source de données (DSN), le nom d'utilisateur et le mot de passe.

ReadOnly

Facultatif

Variant

True si la connexion doit être ouverte pour un accès en lecture seule et False si la connexion doit être ouverte pour un accès en lecture/écriture (valeur par défaut).

Connect

Facultatif

Variant

Chaîne de connexion ODBC. Consultez la propriété Connect pour connaître les éléments spécifiques et la syntaxe de cette chaîne. Une connexion "ODBC;" en attente est indispensable.

Valeur renvoyée

Connection

Remarques

Utilisez la méthode OpenConnection pour définir une connexion à une source de données ODBC à partir d'un espace de travail ODBCDirect. La méthode OpenConnection est similaire à la méthode OpenDatabase, mais elle n'y est pas équivalente. La différence principale est que la méthode OpenConnection est disponible dans un espace de travail ODBCDirect.

Si vous spécifiez un nom de source de données ODBC (DSN) inscrit dans l’argument connect, l’argument name peut être n’importe quelle chaîne valide et fournit également la propriété Name pour l’objet Connection . Si un DSN valide n’est pas inclus dans l’argument connect, name doit faire référence à un DSN ODBC valide, qui sera également la propriété Name . Si ni name ni connect ne contiennent de DSN valide, le gestionnaire de pilotes ODBC peut être défini (via l’argument options) pour inviter l’utilisateur à entrer les informations de connexion requises. Le nom DSN indiqué à l'invite fournit ensuite la propriété Name.

L’argument options détermine si et quand inviter l’utilisateur à établir la connexion et s’il faut ou non ouvrir la connexion de façon asynchrone. Vous pouvez utiliser l'une des constantes ci-après.

Constante

Description

dbDriverNoPrompt

Le gestionnaire de pilotes ODBC utilise la chaîne de connexion fournie dans dbname et connect. Si vous ne fournissez pas suffisamment d’informations, une erreur d’exécution se produit.

dbDriverPrompt

Le gestionnaire de pilotes ODBC affiche la boîte de dialogue Sources de données ODBC, qui affiche les informations pertinentes fournies dans dbname ou connect. La chaîne de connexion est composée du DSN que l'utilisateur sélectionné par le biais des boîtes de dialogue, ou, si l'utilisateur ne spécifie pas de DSN, c'est le DSN par défaut qui est utilisé.

dbDriverComplete

Valeur par défaut. Si l'argument connect inclut toutes les informations nécessaires pour établir une connexion, le gestionnaire de pilotes ODBC utilise la chaîne dans connect. Autrement, il se comporte comme lorsque vous spécifiez dbDriverPrompt.

dbDriverCompleteRequired

Cette option se comporte comme dbDriverComplete sauf que le pilote ODBC désactive les invites pour les informations qui ne sont pas nécessaires à l'établissement de la connexion.

dbRunAsync

Exécute la méthode en mode asynchrone. Cette constante peut être utilisée avec n'importe quelles autres constantes options.

OpenConnection renvoie un objet Connection qui contient des informations relatives à la connexion. L'objet Connection est similaire à un objet Database. La différence principale est qu'un objet Database représente généralement une base de données, même si elle peut être utilisée pour représenter une connexion à une source de données ODBC à partir d'un espace de travail Microsoft Access.

Exemple

Cet exemple utilise la méthode OpenConnection avec différents paramètres pour ouvrir trois objets Connection différents.

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 
 

Cet exemple présente l'objet Connection et la collection Connections en ouvrant un objet Microsoft Access Database et deux objets ODBCDirect Connection, et en répertoriant les propriétés disponibles dans chaque objet.

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