MDB ファイルが作成された Access のバージョンの取得 Hit Counter

対象バージョン : 97, 2000(MDB), 2002(MDB), 2003(MDB)
最終更新日 : 2005/04/25 (オリジナル作成日 : 1998/10/23)


概 要 

 mdb の拡張子で作成されているファイルで、Access が作成した場合に、どのバージョンで作成されたかを得る方法です。

 

構 文

 GetCreatedVersion(String)

 

解 説

GetCreatedVersion 関数の戻り値は整数型 (Integer)です。

GetCreatedVersion 関数では次の引数を使用します。

引 数 内     容
String mdb ファイルのフルパスを示す文字列式

GetCreatedVersion 関数が返す値と、対応するバージョンは次のとおりです。

バージョン
-1 Access(Jet) で作成されたものと思われるが、判断不能。
0 該当ファイルが無い、あるいは Access(Jet) で作成されたものでない。
2 Access 2.0
7 Access 7.0 (Access 95)
8 Access 97
9 Access 2000
10 Access 2002
11 Access 2003

ユーザー定義関数

Function GetCreatedVersion(argmdbFileName As String) As Integer
Dim db As DAO.Database
Dim strdir As String
Dim prp As DAO.Property
Dim intProjVer As Integer

strdir = Dir(argmdbFileName)
If Len(strdir) = 0 Then Exit Function
On Error GoTo GetCreatedVersion_err
Set db = DBEngine(0).OpenDatabase(argmdbFileName)

Select Case Left(db.Properties("AccessVersion"), 2)
Case "02"
    GetCreatedVersion = 2
Case "06"
    GetCreatedVersion = 7
Case "07"
    GetCreatedVersion = 8
Case "08"
    For Each prp In db.Properties
        If prp.Name = "ProjVer" Then
            intProjVer = prp.Value
            Exit For
        End If
    Next
    Select Case intProjVer
    Case 0
        GetCreatedVersion = 9
    Case 24
        GetCreatedVersion = 10
    Case 35
        GetCreatedVersion = 11
    Case Else
        GetCreatedVersion = -1
    End Select
Case "09"
    For Each prp In db.Properties
        If prp.Name = "ProjVer" Then
            intProjVer = prp.Value
            Exit For
        End If
    Next
    Select Case intProjVer
    Case 0
        GetCreatedVersion = 10
    Case 24
        GetCreatedVersion = 10
    Case 35
        GetCreatedVersion = 11
    Case Else
        GetCreatedVersion = -1
    End Select
Case Else
    GetCreatedVersion = 0
End Select
db.Close
Set db = Nothing
Exit Function

GetCreatedVersion_err:
Select Case Err.Number
Case 3045
    MsgBox Err.Description
    GetCreatedVersion = 0
Case 3343
    Dim fno As Integer
    Dim strKeyWord As String
    fno = FreeFile
    Open argmdbFileName For Input Access Read As fno
    If LOF(fno) < 20 Then
        GetCreatedVersion = 0
    Else
        Seek fno, 5
        strKeyWord = Input(15, fno)
        If strKeyWord = "Standard Jet DB" Then
            GetCreatedVersion = -1
        Else
            GetCreatedVersion = 0
        End If
    End If
    Close fno
Case Else
    GetCreatedVersion = 0
End Select

If Not db Is Nothing Then
    db.Close
    Set db = Nothing
End If
Exit Function

End Function


補 足

作成した
バージョン

呼出側のバージョン

97 2000 2002 2003
2.0
7.0
97
2000 ×
2002 ×
2003 ×

 

注 意

 

改訂履歴


目次へ戻る