Workspace.OpenDatabase メソッド (DAO)
適用先: Access 2013、Office 2013
Workspace オブジェクト内で指定されたデータベースを開き、そのデータベースを表す Database オブジェクトへの参照を返します。
構文
式 。OpenDatabase(Name, Options, ReadOnly, Connect)
expression: Workspace オブジェクトを表す変数。
パラメーター
名前 |
必須かどうか |
データ型 |
説明 |
---|---|---|---|
名前 |
必須 |
文字列型 (String) |
既存の Microsoft Access データベース エンジンのデータベース ファイル名、または ODBC データ ソースのデータ ソース名 (DSN) です。 この値を設定する方法の詳細については、 Name プロパティのトピックを参照してください。 |
Options |
省略可能 |
Variant |
「解説」に記載されたデータベースのさまざまなオプションを設定します。 |
ReadOnly |
省略可能 |
Variant |
True に設定すると、データベースが読み取り専用アクセスで開かれ、False (既定値) に設定すると、読み取り/書き込みアクセスで開かれます。 |
Connect |
省略可能 |
Variant |
パスワードなどさまざまな接続情報を指定します。 |
戻り値
Database
注釈
オプションの引数に使用できる値は次のとおりです。
Setting |
説明 |
---|---|
True |
データベースを排他モードで開きます。 |
False |
(既定値) データベースを共有モードで開きます。 |
データベースを開くと、そのデータベースは自動的に Databases コレクションに追加されます。
dbname を使用する際に一部の注意事項が適用されます。
別のユーザーによって既に排他的に開かれているデータベースを指定すると、エラーが発生します。
既存のデータベース、または有効な ODBC データ ソース名を指定していない場合は、エラーが発生します。
この引数で長さ 0 の文字列 ("") を指定し、connect で "ODBC;" を指定した場合は、すべての登録済みの ODBC データ ソース名を一覧表示したダイアログ ボックスが表示され、ユーザーがデータベースを選択できるようになります。
データベースを閉じ、その Database オブジェクトを Databases コレクションから削除するには、そのオブジェクトの Close メソッドを使用します。
注:
Microsoft Access データベース エンジンに接続している ODBC データ ソースにアクセスするときは、ODBC データ ソースに接続された Database オブジェクトを開いた方が、個々の TableDef オブジェクトを ODBC データ ソースの特定のテーブルにリンクさせるよりもアプリケーションのパフォーマンスが向上します。
例
この例では、OpenDatabase メソッドを使用して、Microsoft Access データベースと、Microsoft Access データベース エンジンに接続された 2 つの ODBC データベースを開きます。
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