MartyConnelly
martyconnelly at shaw.ca
Tue May 11 12:32:29 CDT 2004
From the MS dll help database for msaccess.exe
http://support.microsoft.com/default.aspx?scid=http%3a%2f%2fsupport.microsoft.com%2fservicedesks%2ffileversion%2fdllinfo.asp&fp=1
Here are the SP versions for Access
It skips some Version numbers like Office 2000 SP2 and Office 2003 beta
Maybe the Office 2000 SP2 download is no longer available, I haven't
checked.
File Name Version More Information Description
msaccess.exe 9.0.0.6620 More Information Microsoft Access
for Windows 2000 SP3
msaccess.exe 9.0.0.3822 More Information Microsoft Access
for Windows 2000 SP1
msaccess.exe 9.0.0.2719 More Information Microsoft Access
for Windows 2000 standard
msaccess.exe 8.0.0.5903 More Information Microsoft Access
97 SP2
msaccess.exe 8.0.0.4122 More Information Microsoft Access
97 SP1
msaccess.exe 8.0.0.3512 More Information Microsoft Access
97 standard
msaccess.exe 11.0.5614.0 More Information Microsoft Office
Access 2003
msaccess.exe 10.0.4302.0 More Information Microsoft
Access XP SP2
msaccess.exe 10.0.3409.0 More Information Microsoft
Access XP SP1
msaccess.exe 10.0.2627.1 More Information Microsoft
Access XP standard
msaccess.exe More Information Access 2.0
Here is some quick and dirty code to get ALL Access versions installed
on the machine
No matter where the user has stuffed them. ie. in
\MySpecial\OfficeAccessDirectory
ie Version 8.0.0.5903 is Access 97 SP-2
However newer versions of McAfee Ver 8.0 will cough and splutter on
this and complain about
running scripts. I could switch this code to use API calls instead of WSH
Sub tryver()
Dim i As Long
Dim strPath As String
Dim strVersion As String
For i = 8 To 11
strPath = GetAccessPath(i)
strVersion = GetVersion(strPath)
If Len(strPath) Then
MsgBox "Microsoft Access version " & strVersion & " is installed
at" _
& strPath, 64, "Found It"
End If
Next
End Sub
Function GetAccessPath(Version As Long) As String
Dim wsh As Object
Dim strValue As String
On Error Resume Next
Set wsh = CreateObject("Wscript.Shell")
strValue = wsh.RegRead("HKCR\Access.Application." & Version & _
"\Shell\Open\Command\")
GetAccessPath = StripIt(strValue)
End Function
Function StripIt(Arg As String) As String
'Removes any command line parameters or quotes from the string
If InStr(Arg, "/") > 0 Then
StripIt = Trim(Left(Arg, InStr(Arg, "/") - 1))
Else
StripIt = Arg
End If
If Left(StripIt, 1) = Chr(34) Then
StripIt = Mid(StripIt, 2)
End If
If Right(StripIt, 1) = Chr(34) Then
StripIt = Left(StripIt, Len(StripIt) - 1)
End If
End Function
Function GetVersion(FilePath) As String
'Returns version for FilePath
Dim fso As Object
Dim temp As String
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
temp = fso.GetFileVersion(FilePath)
If Len(temp) Then
GetVersion = temp
Else
GetVersion = 0
End If
End Function
Stephen Bond wrote:
>The construct SysCmd(acSysCmdAccessVer) gets me the Access version I am running. I have looked thru SysCmd and can't find how to determine the patch level.
>
>I want to disable some command buttons whose underlying code depends on Access 2000 being patched to service pack 3.
>
>Any ideas?
>
>Stephen Bond
>
>
>
>
--
Marty Connelly
Victoria, B.C.
Canada