Home > Software engineering >  Disconnecting users and removing .laccdb file - Office 365
Disconnecting users and removing .laccdb file - Office 365

Time:03-26

I have .adcde frontend .accdb backend database located on local shared drive, used by 10 users at the moment. They are using shortcuts to access frontend file. I have struggled to make regular updates as users constantly left DB open so I implemented idea from MSDN website ( https://docs.microsoft.com/en-us/office/troubleshoot/access/shut-down-custom-application-remotely ) Solution works well on my machine, however, when utilized in user environment, it seems to leave .laccdb locks on both frontend and backend (which I deduct should be closed in moment when last connection to frontend closes)

Any hints? Do I understand this structure incorrectly?

Private Sub Form_Open(Cancel As Integer)
    boolCountDown = False
    DoCmd.Maximize
    DoCmd.Restore
    Me.Visible = False
End Sub

Private Sub Form_Timer()
On Error GoTo Err_Form_Timer
    Dim strFileName As String
    strFileName = Dir(filelocation/chkfile.ozx)
    If boolCountDown = False Then
        If strFileName <> "chkfile.ozx" Then
            boolCountDown = True
            intCountDownMinutes = 2
        End If
    Else
        intCountDownMinutes = intCountDownMinutes - 1
        'DoCmd.OpenForm "aShutDownWarning"
        Me.Visible = True
        Me.SetFocus
        Forms!aShutDownWarning!txtWarning.Caption = "This application will be shut down in approximately " & intCountDownMinutes & " minute(s) due to maintenance works.  Please save all work."
        If intCountDownMinutes < 1 Then
            Application.Quit acQuitSaveAll
        End If
    End If
end sub

CodePudding user response:

That should work but I guess, since the laccdb files are still there, that one or more user are actually not logged out.

If they logg out from their account or from their computer the Access files can still be open but not running, so your code is not really running.

I solved a similar situation by adding usernames to a table when they start the program and delete the same username when program are closed. That way I could see users that was not logged out by a similar code.

CodePudding user response:

If you're able to delete the .laccdb files manually then no one is still logged in and some user's Access session was simply unable to clean up after itself when it terminated. This might be caused by a user not having delete access to the folder where the .laccdb file is. Otherwise, someone is still logged in. You can use the Jet UserRoster to see who is logged in. If you want to make your own viewer see https://docs.microsoft.com/en-us/office/troubleshoot/access/determine-who-is-logged-on-to-database or see this utility at https://www.utteraccess.com/topics/1897146

  • Related