Freigeben über


Workspace.OpenConnection-Methode (DAO)

Gilt für: Access 2013, Office 2013

Syntax

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

Ausdruck Eine Variable, die ein Workspace-Objekt darstellt.

Parameter

Name

Erforderlich/optional

Datentyp

Beschreibung

Name

Erforderlich

String

Ein Zeichenfolgenausdruck. Weitere Informationen erhalten Sie im Abschnitt "Hinweise".

Optionen

Optional

Variant

Legt verschiedene Optionen für die Verbindung fest, wie unter "Hinweise" beschrieben. Basierend auf diesem Wert fordert der ODBC-Treibermanager den Benutzer auf, Verbindungsdaten einzugeben, z. B. den Datenquellennamen (Data Source Name, DSN), den Benutzernamen oder das Kennwort.

ReadOnly

Optional

Variant

True, um die Verbindung nur mit Lesezugriff zu öffnen, und False, wenn die Verbindung mit Lese-/Schreibzugriff geöffnet werden soll (Standard).

Connect

Optional

Variant

Ein ODBC-Verbindungszeichenfolge. Die spezifischen Elemente und die Syntax dieser Zeichenfolge finden Sie in der Connect-Eigenschaft . Ein vorangestelltes "ODBC;" ist erforderlich.

Rückgabewert

Verbindung

Hinweise

Mit der OpenConnection-Methode können Sie aus einem ODBC-Arbeitsbereich eine Verbindung zu einer ODBC-Datenquelle herstellen. Die OpenConnection-Methode ähnelt der OpenDatabase-Methode. Der wichtigste Unterschied besteht darin, dass OpenConnection nur in einem ODBCDirect-Arbeitsbereich verfügbar ist.

Wenn Sie einen registrierten ODBC-Datenquellennamen (DSN) im connect-Argument angeben, kann das Argument name eine beliebige gültige Zeichenfolge sein und stellt auch die Name-Eigenschaft für das Connection-Objekt bereit. Wenn kein gültiger DSN im Connect-Argument enthalten ist, muss name auf einen gültigen ODBC-DSN verweisen, der auch die Name-Eigenschaft ist. Wenn weder name noch connect einen gültigen DSN enthält, kann der ODBC-Treiber-Manager (über das Optionsargument) festgelegt werden, um den Benutzer zur Eingabe der erforderlichen Verbindungsinformationen aufzufordern. Der durch die Eingabeaufforderung bereitgestellte DSN gibt dann die Name-Eigenschaft an.

Das Optionsargument bestimmt, ob und wann der Benutzer aufgefordert werden soll, die Verbindung herzustellen, und ob die Verbindung asynchron geöffnet werden soll. Sie können eine der folgenden Konstanten verwenden.

Konstante

Beschreibung

dbDriverNoPrompt

Der ODBC-Treibermanager verwendet die in dbname und connect angegebene Verbindungszeichenfolge. Es tritt ein Laufzeitfehler auf, wenn Sie nicht genügend Informationen bereitstellen.

dbDriverPrompt

Der ODBC-Treiber-Manager zeigt das Dialogfeld ODBC-Datenquellen an , in dem alle relevanten Informationen angezeigt werden, die in dbname oder connect angegeben werden. Die Verbindungszeichenfolge besteht aus dem DSN, den der Benutzer über die Dialogfelder auswählt, oder, wenn der Benutzer keinen DSN angibt, wird der Standard-DSN verwendet.

dbDriverComplete

Standard. Enthält das Argument connect alle für die Verbindung erforderlichen Informationen, verwendet der ODBC-Treibermanager die Zeichenfolge in connect. Andernfalls verhält er sich so, als hätten Sie dbDriverPrompt angegeben.

dbDriverCompleteRequired

Das Verhalten dieser Option entspricht dem von dbDriverComplete, mit der Ausnahme, dass der ODBC-Treiber die Eingabeaufforderungen für alle Informationen deaktiviert, die nicht für die Verbindung erforderlich sind.

dbRunAsync

Die Methode wird asynchron ausgeführt. Diese Konstante kann mit jeder anderen options-Konstante verwendet werden.

OpenConnection gibt ein Connection-Objekt zurück, das Informationen zur Verbindung enthält. Das Connection-Objekt ähnelt einem Database -Objekt. Der Hauptunterschied liegt darin, dass ein Database-Objekt in der Regel eine Datenbank repräsentiert, aber auch verwendet werden kann, um eine Verbindung zu einer ODBC-Datenquelle aus einem Microsoft Access-Arbeitsbereich darzustellen.

Beispiel

In diesem Beispiel wird die OpenConnection-Methode mit verschiedenen Parametern verwendet, um drei verschiedene Connection-Objekte zu öffnen.

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 
 

In diesem Beispiel werden das Connection-Objekt und die Connections-Auflistung veranschaulicht. Dazu werden ein Database-Objekt von Microsoft Access und zwei Connection-Objekte von ODBCDirect geöffnet, und die für die einzelnen Objekte verfügbaren Eigenschaften werden aufgelistet.

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