There are a lot of ways for a user and/or a computer (hardware) to corrupt a db. I would also suggest creating a log of all users who open and when they close a db. The code below will allow you to grab their computer name. You can also get the NT user name as well with the second function below. Good luck!
HTH
'Used with GetNTUser
Private Declare Function GetUserName Lib "AdvAPI32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nsize As Long) As Long
'Used with ComputerName()
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nsize As Long) As Long
Public Function ComputerName()
On Error GoTo Err_ComputerName
Dim Comp_Name_B As String * 255
Dim Comp_Name As String
GetComputerName Comp_Name_B, Len(Comp_Name_B)
Comp_Name = Left(Comp_Name_B, InStr(Comp_Name_B, Chr(0)) - 1)
If Comp_Name = "" Then Comp_Name = " "
ComputerName = Comp_Name
' MsgBox ComputerName
Exit_ComputerName:
Exit Function
Err_ComputerName:
MsgBox Err.Number & " " & Err.Description
Resume Exit_ComputerName
End Function
Public Function GetNTUser() As String
On Error GoTo Err_strUserName
Dim strUserName As String
strUserName = String(100, Chr$(0))
GetUserName strUserName, 100
strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)
GetNTUser = StrConv(strUserName, vbProperCase)
'MsgBox GetNTUser
Exit_strUserName:
Exit Function
Err_strUserName:
MsgBox Err.Number & " " & Err.Description
Resume Exit_strUserName
End Function