Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Access 2013, Office 2013
Ouvre une base de données spécifiée dans un objet Workspace et renvoie une référence à l’objet Database qui le représente.
Syntaxe
expression . OpenDatabase(Name, Options, ReadOnly, Connect)
expression Variable qui représente un objet Workspace.
Paramètres
Nom |
Obligatoire/facultatif |
Type de données |
Description |
|---|---|---|---|
Name |
Obligatoire |
Chaîne |
Nom d'un fichier de base de données de moteur de base de données Microsoft Access existant, ou nom de la source de données (DSN) d'une source de données ODBC. Pour plus d'informations sur la définition de cette valeur, reportez-vous à la propriété Name. |
Options |
Facultatif |
Variant |
Définit différentes options pour la base de données, selon les indications dans les notes. |
ReadOnly |
Facultatif |
Variant |
True si vous souhaitez ouvrir la base de données avec un accès en lecture seule, ou False (valeur par défaut) si vous souhaitez ouvrir la base de données avec un accès en lecture/écriture. |
Connect |
Facultatif |
Variant |
Spécifie les différentes informations de connexion, dont les mots de passe. |
Valeur renvoyée
Database
Remarques
Vous pouvez utiliser les valeurs ci-dessous pour l’argument options.
Setting |
Description |
|---|---|
True |
Ouvre la base de données en mode exclusif. |
False |
(Valeur par défaut) Ouvre la base de données en mode partagé. |
Lorsque vous ouvrez une base de données, elle est automatiquement ajoutée à la collection Databases.
Certaines considérations s’appliquent lorsque vous utilisez dbname :
S'il s'agit d'une base de données déjà ouverte pour un accès par un autre utilisateur, une erreur se produit.
S'il ne s'agit pas d'une base de données existante ou d'un nom de source de données ODBC valide, une erreur se produit.
S’il s’agit d’une chaîne nulle ("") et si connect prend la valeur "ODBC;", une boîte de dialogue répertoriant tous les noms de source de données ODBC enregistrés s’affiche afin que l’utilisateur puisse sélectionner une base de données.
Pour fermer une base de données, et ainsi supprimer l’objet Database de la collection Databases, utilisez la méthode Close dans l’objet.
Remarque
Lorsque vous accédez à une source de données ODBC connectée au moteur de base de données Microsoft Access, vous pouvez améliorer les performances de votre application en ouvrant un objet Database connecté à la source de données ODBC, plutôt qu’en liant des objets TableDef individuels à des tables spécifiques dans la source de données ODBC.
Exemple
Cet exemple utilise la méthode OpenDatabase pour ouvrir une base de données Microsoft Access et deux bases de données ODBC connectées par le moteur de base de données Microsoft Access.
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