| MDB ファイルが作成された Access のバージョンの取得 |
|
対象バージョン : 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 | × | ○ | ○ | ○ |
注 意
改訂履歴