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