#038 MDBファイルのAccess(DAO)バージョンを調べる方法 VBA

Accessのデータベースファイルは、いずれのバージョンで作成されたものも拡張子が"MDB"となりますので、実際にAccessのそれぞれのバージョンで開いてみないと確認することができません。そこで次に、VBAを使って指定したMDBファイルのAccessのバージョンを調べる方法をご紹介します。

MDBファイルのAccessのバージョンを調べるには、指定したMDBファイルの Database オブジェクトの[Version]プロパティを調べます。実はこのプロパティはJETデータベースエンジン(DAO)のバージョンを返すものですが、Accessのバージョンと等価と考えられますので、そのプロパティ値によってAccessのバージョンを判断することができます。ただしこれには1つ注意点があります。Access95もAccess97も同じ"3.0"という値を返すのです。Access97は"3.5"を返してくれてもよさそうなのですがそうはいかないようです。そこで、その2つのバージョンについてはさらに[AccessVersion]プロパティを調べて判断を行います。なお、このプロパティについては、"dbs.AccessVersion"という記述方法では参照できません。次のコードのように、dbs.Properties("AccessVersion")という構文を使う必要があります。

サンプルプロシージャ:
Public Function GetAccVer(strMDBPath As String) As String

  Dim dbs As Database

  Set dbs = DBEngine(0).OpenDatabase(strMDBPath)
  Select Case dbs.Version
    Case "1.1"
      GetAccVer = "Access1.1"
    Case "2.0"
      GetAccVer = "Access2.0"
    Case "3.0"
      If Left(dbs.Properties("AccessVersion"), 2) = "06" Then
        GetAccVer = "Access95"
      Else
        GetAccVer = "Access97"
      End If
  End Select

End Function
※このコードは、すべて[AccessVersion]プロパティを使ってバージョン判断を行わせることもできます。ただし、その場合にはAccess1.1で「プロパティが見つかりませんでした」のエラーとなりますので、そのエラーが発生したらAccess1.1で作成されたものであると、エラートラップで判断させる必要があります。
| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved