Freigeben über


Workspace.OpenDatabase-Methode (DAO)

Gilt für: Access 2013, Office 2013

Öffnet eine bestimmte Datenbank in einem Workspace-Objekt und gibt einen Verweis auf das Database-Objekt zurück, das es darstellt.

Syntax

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

Ausdruck Eine Variable, die ein Workspace-Objekt darstellt.

Parameter

Name

Erforderlich/optional

Datentyp

Beschreibung

Name

Erforderlich

Zeichenfolge

der Name einer vorhandenen Microsoft Access-Datenbankmoduldatei, oder der Dastenquellname (DSN) einer ODBC-Datenquelle. Weitere Informationen zum Festlegen dieses Werts finden Sie in der Name -Eigenschaft.

Options

Optional

Variant

Legt entsprechend der Angaben unter den Hinweisen verschiedene Optionen für die Datenbank fest.

ReadOnly

Optional

Variant

True, wenn Sie eine Datenbank nur mit Lesezugriff öffnen möchten, oder False (Standard), wenn Sie die Datenbank mit Lese-/Schreibzugriff öffnen möchten.

Connect

Optional

Variant

Gibt verschiedene Verbindungsinformationen an, einschließlich der Kenntwörter.

Rückgabewert

Datenbank

Bemerkungen

Sie können für das Options-Argument folgende Werte verwenden.

Einstellung

Beschreibung

True

Öffnet die Datenbank im Exklusivmodus.

False

(Standard) Öffnet die Datenbank im Freigabemodus.

Wenn Sie eine Datenbank öffnen, wird sie automatisch zur Databases-Sammlung hinzugefügt.

Einige Aspekte sollten bei der Verwendung von dbname berücksichtigt werden:

  • Wenn er sich auf eine Datenbank bezieht, die bereits für den Zugriff durch einen anderen Benutzer geöffnet wurde, tritt ein Fehler auf.

  • Wenn er sich nicht auf eine vorhandene Datenbank oder einen gültigen ODBC-Datenquellennamen bezieht, tritt ein Fehler auf.

  • Wenn es sich um eine Zeichenfolge mit der Länge null handelt ("") und connect gleich "ODBC;" ist, wird ein Dialogfeld mit allen registrierten ODBC-Datenquellennamen angezeigt, sodass der Benutzer eine Datenbank auswählen kann.

Um eine Datenbank zu schließen und so das Database-Objekt aus der Databases-Auflistung zu entfernen, verwenden Sie für das Objekt die Close-Methode.

Hinweis

Wenn Sie auf eine ODBC-Datenquelle zugreifen, die mit einem Microsoft Access-Datenbankmodul verbunden ist, können Sie die Leistung der Anwendung verbessern, indem Sie ein Database-Objekt öffnen, das mit der ODBC-Datenquelle verbunden ist, anstatt einzelne TableDef-Objekte mit bestimmten Tabellen in der ODBC-Datenquelle zu verknüpfen.

Beispiel

In diesem Beispiel wird die OpenDatabase Methode zum Öffnen einer Microsoft Access-Datenbank und zwei mit dem Microsoft Access-Datenbankmodul verbundenen ODBC-Datenbanken verwendet.

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