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