DoCmd.Quit

Status
Niet open voor verdere reacties.

Tonio59

Gebruiker
Lid geworden
29 mei 2008
Berichten
34
Momenteel beheer ik een database waarin steeds 10 mensen data invoeren en uitlezen. Dit in een 5 ploegendienstsysteem. M.a.w. de database is bijna continue bezet. Wanneer ik een aanpassing wil doen moet iedereen uitgelogd zijn. Dit betekent veel telefoontjes plegen. Ik heb begrepen dat met DoCmd.Quit de database te stoppen zou zijn. Als ik dit aan een timer zou kunnen koppelen (bijvoorbeeld 60 minuten) dan bestaat de kans dat ik veel minder mensen hoef na te bellen. De praktijk leert dat de meeste gebruikers aan het begin van de dienst de data lezen en op het einde van de dienst de data invoeren.
Wie kan mij hierbij helpen?

Groeten,

Ton
 
Met het commando Quit sluit je de database af, maar ik weet niet of je dat zomaar moet doen als er nog mensen in aan het werk zijn. Je zult eigenlijk moeten controleren welke gebruikers nog in de database bezig zijn.
Misschien heb je wat aan deze link; hier is het proces vrij redelijk beschreven.
 
Hallo Ton,

Ik had hetzelfde probleem en heb dat als volgt opgelost. Open bij het openen van de database een verborgen formulier met een checkveld. Jij als ontwikkelaar/beheerder kunt als enige dit veld openen. Als je de database wilt sluiten, open je het formulier en vinkt de checkbox aan. Op het moment dat je dat doet, open je een popup formulier met de mededeling dat de database binnen bijv. 30 sec. wordt gesloten. Op de timerfunctie van dit formulier geef je dan het quitcommando. Zorg wel dat jejezelf als ontwikkelaar uitsluit, anders schiet het natuurlijk niet op.

Code:
Private Sub Form_Timer()

    If Forms![FrmToegang]![TxtFunctieToegang] <> "ontwikkelaar" Then
        If [Forms]![FrmDownload]![ChkDownload] = True Then
            DoCmd.Quit acQuitSaveAll
        Else
        End If
    Else
        DoCmd.Close acForm, "FrmDownloadSluiten"
    End If
  
End Sub

groeten
Wim Janssen
 
Met het commando Quit sluit je de database af, maar ik weet niet of je dat zomaar moet doen als er nog mensen in aan het werk zijn. Je zult eigenlijk moeten controleren welke gebruikers nog in de database bezig zijn.
Misschien heb je wat aan deze link; hier is het proces vrij redelijk beschreven.

OctaFish,
Bedankt voor de snelle respons. Heb de zip binnengehaald en geprobeerd. Werkt perfect. Ga volgende cyclus de database aanpassen en testen. Ik laat het nog wel weten. :thumb:
 
Hallo Ton,

Ik had hetzelfde probleem en heb dat als volgt opgelost. Open bij het openen van de database een verborgen formulier met een checkveld. Jij als ontwikkelaar/beheerder kunt als enige dit veld openen. Als je de database wilt sluiten, open je het formulier en vinkt de checkbox aan. Op het moment dat je dat doet, open je een popup formulier met de mededeling dat de database binnen bijv. 30 sec. wordt gesloten. Op de timerfunctie van dit formulier geef je dan het quitcommando. Zorg wel dat jejezelf als ontwikkelaar uitsluit, anders schiet het natuurlijk niet op.

Code:
Private Sub Form_Timer()

    If Forms![FrmToegang]![TxtFunctieToegang] <> "ontwikkelaar" Then
        If [Forms]![FrmDownload]![ChkDownload] = True Then
            DoCmd.Quit acQuitSaveAll
        Else
        End If
    Else
        DoCmd.Close acForm, "FrmDownloadSluiten"
    End If
  
End Sub

groeten
Wim Janssen

Wim, jij ook bedankt voor het meedenken. Ga eerst voor de oplossing van OctaFish. Laat ook jou nog weten of het gelukt is.:thumb:
 
Hallo Ton,

Misschien is mijn omschrijving niet compleet genoeg, maar ik bedoel precies hetzelfde als OctaFish. Belangrijkste is dat het een prachtige oplossing is.

groeten
Wim Janssen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan