- ベストアンサー
Accessのバージョンの判別方法
VisualBasic6.0でAccessのバージョンを判別する方法を調べたのですがわかりません。 どなたかわかる方ご教授願います。 例をのせていただけるとありがたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
コピペですが、 Function FindVersion(strDbPath As String) As String Dim dbs As Database Dim strVersion As String Const conPropertyNotFound As Integer = 3270 On Error GoTo Err_FindVersion ' Open the database and return a reference to it. Set dbs = OpenDatabase(strDbPath) ' Check the value of the AccessVersion property. strVersion = dbs.Properties("AccessVersion") Debug.Print strVersion ' Return the two leftmost digits of the value of ' the AccessVersion property. strVersion = Left(strVersion, 2) ' Based on the value of the AccessVersion property, ' return a string indicating the version of Microsoft Access ' used to create or open the database. Select Case strVersion Case "02" FindVersion = "2.0" Case "06" FindVersion = "95" Case "07" FindVersion = "97" Case "08" FindVersion = "2000" Case "09" FindVersion = "2002" End Select Exit_FindVersion: On Error Resume Next dbs.Close Set dbs = Nothing Exit Function Err_FindVersion: If Err.Number = conPropertyNotFound Then MsgBox "This database hasn't previously been opened " & _ "with Microsoft Access." Else MsgBox "Error: " & Err & vbCrLf & Err.Description End If Resume Exit_FindVersion End Function DAOの参照設定が必要です。
その他の回答 (2)
- nda23
- ベストアンサー率54% (777/1415)
(1)No.2の方の方法をVB6から実行する方法 Dim A, V Set A= CreateObject("Access.Application") V = A.Version '★ V にバージョンが入る A.Quit Set A= Nothing ※Accessが一時的に起動する (2)レジストリから調べる方法 Dim A, B, C, D, E, V Set A = CreateObject("WbemScripting.SWbemLocator") Set B = A.ConnectServer(".", "\root\default") Set C = B.Get("StdRegProv") C.GetStringValue &H80000000, "Access.Application\CurVer", "", D E = Split(D, ".") V = CLng(E(UBound(E))) '★ V にバージョンが入る ※Accessは起動しない いずれもエラー処理はハンドリングしていません。つまり、 AccessをインストールしていないPCで実行すると障害が発生します。 尚、複数のバージョンのAccessをインストールしている場合、後から インストールした方のバージョンが返ります。バージョンの最大値を 求める場合は別の方法になります。
- imogasi
- ベストアンサー率27% (4737/17069)
Moduleで Sub test04() MsgBox Application.Version End Sub アクセスの中に入らないとわからないかも入れないが、そのコードは WEBに多数ある。 アクセスを開かないで知りたいとか特殊なことかな。