Lotus Notes FAQ Visit Our Sponsor!

How do you find the exact version number of Notes?

The following converts the version number, including lettered versions, to dotted decimal format for easy comparison. 4.6.3b becomes version 4.6302, which is definitely a "higher" version than 4.6.2a (4.6201 in this code).

' from Scott Purl (spurl@acm.org)
' Yep.  Only one Dim.  Session.NotesVersion holds the key.
Dim Session As New NotesSession

' Find out the version information
MyVersion = Session.NotesVersion
' Get the length of the version string
Length = Len(MyVersion)
' Discover What the "half" delimiter is, meaning what's the first non-alphanumeric character starting from the left
' Note that in the North American and International versions, this first non-alpha character differs
If MyVersion Like "*Intl*" Then
   SepChar = "("
   OffSet = 0
Else
   SepChar = "|"
   OffSet = 2
End If
' Now find this first non-alphanumeric character
SepLoc = Instr(MyVersion, SepChar)
' Get everything to the left of that character
LeftHalf = Left(MyVersion, SepLoc - 1)
' Find the only space in the left half
SpacLoc = Instr(LeftHalf, " ")
' The version number is what's left to the right of the space in the left half, minus extra spaces
' code (with bug) was VerNum = Trim(Right(LeftHalf, SpacLoc - OffSet))
VerNum = Trim(Right(LeftHalf,  Len(LeftHalf) - SpacLoc - OffSet))
' Get the length of the version number
VerLen = Len(VerNum)
' Loop through the version number to remove periods
For x =1 To VerLen
CurChar = Mid(VerNum, x, 1)
If CurChar = "." Then
   ' Do Nothing
Else
   ' Keep appending non-period characters until finished
   SubVer = SubVer & CurChar
End If
Next

' If the right-most character is a letter, convert it to a number
' "a" becomes "01", and "z" becomes "26"
RSubVer = Right(SubVer, 1)
If Instr("abcdefghijklmnopqrstuvwxyz", RSubVer) Then
   ' The first 9 letters of the alphabet need a padding leading zero
   If Instr("abcdefghi", RSubVer) Then
      AlphaNum = Instr("abcdefghi", RSubVer)
      NewSubVer = Left(SubVer, Len(SubVer) -1) & "0" & AlphaNum
   End If
   ' The rest of the alphabet are all greater than 10 in position
   If Instr("jklmnopqrstuvwxyz", RSubVer) Then
      AlphaNum = Instr("abcdefghijklmnopqrstuvwxyz", RSubVer)
      NewSubVer = Left(SubVer, Len(SubVer) -1) & AlphaNum
   End If
' And the numeric equivalent of the position is
SubVer = NewSubVer
End If

' Assemble it into leftmost character, plus a period, plus the rest of the iterated sub version
TextVer = Left(SubVer, 1) & "." & Right(SubVer, Len(Subver) -1)

' Convert it to a normal number so we can do quick comparisons.
FinVer = Cstr(TextVer)

You can then do:

If FinVer >= 4.6302 Then
  'Action if True
Else
  'Action if False
End If

Applies to Notes Versions: 4, 4.5, 4.6, 5
Last Modified: May 18, 2000