Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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