Dan Waters
df.waters at comcast.net
Mon Oct 22 19:04:50 CDT 2012
A couple of weeks ago I did some research to record Windows and Access
versions while a person was logging in. This is what I came up with.
HTH!
Dan
'---------------------------------------
Option Compare Database
Option Explicit
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Public Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation
As OSVERSIONINFO) As Integer
Private Sub GetWindowsAccessVersion()
'-- This will record the current windows version, whether the OS is 32
bit or 64 bit, and the Access version for the person logging in.
Dim stg As String
Dim fso As FileSystemObject
Dim int3264 As Integer
Dim stgWindowsVersion As String
Dim stgAccessVersion As String
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists("C:\Windows\sysWOW64") = True Then
int3264 = 64
Else
int3264 = 32
End If
stgWindowsVersion = WindowsVersion
stgAccessVersion = Application.Version & " - " & Application.Build
stg = "UPDATE tblPeopleMain SET" _
& " versionWindows = '" & stgWindowsVersion & "'," _
& " version3264 = " & int3264 & "," _
& " versionAccess = '" & stgAccessVersion & "'" _
& " WHERE PeopleID = " & GV.CurrentPeopleID
DBEngine(0)(0).Execute stg, dbSeeChanges Or dbFailOnError
Set fso = Nothing
End Sub
Public Function WindowsVersion() As String
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer
osinfo.dwOSVersionInfoSize = 148
osinfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)
WindowsVersion = osinfo.dwMajorVersion & "." & osinfo.dwMinorVersion & "
Build (" & osinfo.dwBuildNumber & ") " & fTrimNull(osinfo.szCSDVersion)
End Function
Private Function fTrimNull(strIn As String) As String
Dim intPos As Integer
intPos = InStr(1, strIn, vbNullChar)
If intPos Then
fTrimNull = Mid$(strIn, 1, intPos - 1)
Else
fTrimNull = strIn
End If
End Function