ボンジュール・マドモアゼル

本サイトの情報は自己責任にてご利用下さい。

[Microsoft Access] DAO.Database DAOデータベースがOpen状態かどうかを判定する方法

 
DAO.Database には オープンしてるかどうかを判定できるプロパティ、メソッドが見当たらない。
検索しても有効な手立てが見つからない。

自分が思い付いたのは、以下のような判定方法。
Option Explicit


Public Sub TestDaoDbOpenStatus()

Dim dbs As DAO.Database
Set dbs = CurrentDb()

Debug.Print DatabaseIsOpened(dbs)

dbs.Close

Debug.Print DatabaseIsOpened(dbs)

End Sub

Public Function DatabaseIsOpened(it As DAO.Database) As Boolean
If Not it Is Nothing Then
Dim ws As DAO.Workspace
For Each ws In DBEngine.Workspaces
Dim Db As DAO.Database
For Each Db In ws.Databases
If Db Is it Then
DatabaseIsOpened = True
Exit Function
End If
Next
Next
End If
DatabaseIsOpened = False
End Function
TestDaoDbOpenStatus の出力結果
True

False
参考)
Workspace.Databases Property (DAO)
Returns a Databases collection that represents the open databases in the specified Workspace. Read-only.
http://msdn.microsoft.com/en-us/library/ff834485.aspx
<<VBScript Windows ファイルパス比較 | ホーム | DAO, ADO ファイルの共有ロック数が制限を超えています (Error 3052)。回避方法>>

コメント

コメントの投稿

管理者にだけ表示を許可する

画像の文字を半角数字で下記ボックスに記入ください。
文字が読みにくい場合はブラウザの更新をすると新しい文字列が表示されます。