Αναγν. άρθρου: 210297 - Τελευταία αναθεώρηση: Δευτέρα, 27 Σεπτεμβρίου 2010 - Αναθεώρηση: 2.0

Τρόπος εντοπισμού αδρανούς χρόνου χρήστη ή αδράνειας στην Access 2000

Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.

Σε αυτήν τη σελίδα

Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Το άρθρο αυτό σας δείχνει πώς μπορείτε να δημιουργήσετε μια διαδικασία που θα εκτελεστεί αν η εφαρμογή Access δεν εντοπίσει εισαγωγή χρήστη για ένα καθορισμένο χρονικό διάστημα. Αυτό περιλαμβάνει τη δημιουργία μιας κρυφής φόρμας που περιέχουν κώδικα ο οποίος διατηρεί την καταμέτρηση του χρόνου αδράνειας.

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για λόγους επεξήγησης, χωρίς να παρέχει καμία εγγύηση, σιωπηρή ή ρητή. Σε αυτά περιλαμβάνονται, ενδεικτικά, οι σιωπηρές εγγυήσεις εμπορευσιμότητας ή/και καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων κώδικα διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα, για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες, για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.

ΣΗΜΕΙΩΣΗΧρησιμοποιώντας αυτόν τον κωδικό για την προσθήκη εγγραφών σε έναν πίνακα όταν είναι αδρανής μια βάση δεδομένων μπορεί να οδηγήσει σε μνήμη υπερβολική κατανάλωση.

Τρόπος δημιουργίας φόρμας DetectIdleTime

  1. Δημιουργήστε μια κενή φόρμα που δεν βασίζεται σε πίνακα ή ερώτημα και ονομάστε τον DetectIdleTime.
  2. Ρυθμίστε τις ακόλουθες ιδιότητες φόρμας:
       OnTimer: [Event Procedure]
       TimerInterval: 1000
    						
    ΣΗΜΕΙΩΣΗ:Για ναΧρονικό διάστημα χρονόμετρου (TimerInterval)ρύθμιση υποδεικνύει πόσο συχνά (σε χιλιοστά του δευτερολέπτου) η εφαρμογή ελέγχει για αδράνειας του χρήστη. Η ρύθμιση 1000 ισούται με 1 δευτερόλεπτο.
  3. Ορισμός τουΜε το χρονόμετρο (OnTimer)η ιδιότητα στην ακόλουθη διαδικασία συμβάντος:
    Sub Form_Timer()
       ' IDLEMINUTES determines how much idle time to wait for before
       ' running the IdleTimeDetected subroutine.
       Const IDLEMINUTES = 1
    
       Static PrevControlName As String
       Static PrevFormName As String
       Static ExpiredTime
    
       Dim ActiveFormName As String
       Dim ActiveControlName As String
       Dim ExpiredMinutes
    
       On Error Resume Next
    
       ' Get the active form and control name.
    
       ActiveFormName = Screen.ActiveForm.Name
       If Err Then
          ActiveFormName = "No Active Form"
          Err = 0
       End If
    
       ActiveControlName = Screen.ActiveControl.Name
          If Err Then
          ActiveControlName = "No Active Control"
          Err = 0
       End If
    
       ' Record the current active names and reset ExpiredTime if:
       '    1. They have not been recorded yet (code is running
       '       for the first time).
       '    2. The previous names are different than the current ones
       '       (the user has done something different during the timer
       '        interval).
       If (PrevControlName = "") Or (PrevFormName = "") _
         Or (ActiveFormName <> PrevFormName) _
         Or (ActiveControlName <> PrevControlName) Then
          PrevControlName = ActiveControlName
          PrevFormName = ActiveFormName
          ExpiredTime = 0
       Else
          ' ...otherwise the user was idle during the time interval, so
          ' increment the total expired time.
          ExpiredTime = ExpiredTime + Me.TimerInterval
       End If
    
       ' Does the total expired time exceed the IDLEMINUTES?
       ExpiredMinutes = (ExpiredTime / 1000) / 60
       If ExpiredMinutes >= IDLEMINUTES Then
          ' ...if so, then reset the expired time to zero...
          ExpiredTime = 0
          ' ...and call the IdleTimeDetected subroutine.
          IdleTimeDetected ExpiredMinutes
       End If
    End Sub
    
    
    					
  4. Δημιουργήστε την ακόλουθη διαδικασία στη λειτουργική μονάδα φόρμας:
    Sub IdleTimeDetected (ExpiredMinutes)
       Dim Msg As String
       Msg = "No user activity detected in the last "
       Msg = Msg & ExpiredMinutes & " minute(s)!"
       MsgBox Msg, 48
    End Sub
    
    					

Τρόπος χρήσης της φόρμας DetectIdleTime

Για να αποκρύψετε τη φόρμα DetectIdleTime, όταν ανοίγει η εφαρμογή, δημιουργήστε την ακόλουθη μακροεντολή αυτόματης εκτέλεσης:
   Macro Name   Action
   ----------------------------
   AutoExec     OpenForm


   AutoExec Action Arguments
   ----------------------------
   OpenForm
   Form Name: DetectIdleTime
   View: Form
   Filter Name:
   Where Condition:
   Data Mode: Edit
   Window Mode: Hidden
				
Μπορείτε να προσθέσετε κώδικα στη διαδικασία IdleTimeDetected ώστε να εκτελεί τη διαδικασία, εάν δεν υπάρχει καμία δραστηριότητα του χρήστη για το χρονικό του χρόνου που καθορίζεται στην τιμή της σταθεράς IDLEMINUTES. Για παράδειγμα, μπορεί να έχετε πρόσβαση κλείσει με την ακόλουθη διαδικασία συμβάντος:
Sub IdleTimeDetected (ExpiredMinutes)
   Application.Quit acSaveYes
End Sub
				
Αυτή η διαδικασία προκαλεί την Access για να κλείσετε την εφαρμογή, η αποθήκευση όλων των αντικειμένων χωρίς να εμφανίζει ένα παράθυρο διαλόγου.




Αναφορές

Για περισσότερες πληροφορίες σχετικά με το συμβάν Timer, στην επεξεργασία της Visual Basic, κάντε κλικ στο κουμπίΒοήθεια της Microsoft Visual BasicΣτο διακομιστήΒοήθεια (Help)μενού, πληκτρολογήστεΧρονόμετρο συμβάντωνο Βοηθός του Office ή της "Οδηγός απαντήσεων" και στη συνέχεια κάντε κλικΑναζήτησηΓια να προβάλετε το θέμα.













Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Access 2000 Standard Edition
Λέξεις-κλειδιά: 
kbhowto kbhowtomaster kbprogramming kbmt KB210297 KbMtel
Μηχανικά μεταφρασμένοΜηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:210297  (http://support.microsoft.com/kb/210297/en-us/ )