Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Tips & Tricks (https://www.ms-office.gr/forum/access-tips-tricks/)
-   -   Απλή παρακολούθηση Εφαρμογής Access (https://www.ms-office.gr/forum/access-tips-tricks/508-apli-parakoloithisi-efarmogis-access.html)

Tasos 22-03-10 12:50

Απλή παρακολούθηση Εφαρμογής Access
 
Σε κάποιες περιπτώσεις κρίνεται αναγκαία η καταγραφή κινήσεων σε κάποια εφαρμογή Access (πχ. σε κοινόχρηστες Βασεις δεδομένων).

Το παρακάτω απλό παράδειγμα δείχνει την αρχή λειτουργίας της τεχνικής αυτής.

Το παράδειγμα προϋποθέτει έναν πίνακα με την εξής δόμηση:
  • Όμομα Πίνακα: tblLog
  • Πεδίο: LogID: Αυτόματη Αρίθμιση<o:p></o:p>
  • Πεδίο: OpenDateTime: Ημερομηνία/Ώρα<o:p></o:p>
  • Πεδίο: CloseDateTime: Ημερομηνία/Ώρα<o:p></o:p>
  • Πεδίο: DocName: Κείμενο<o:p></o:p>
  • Πεδίο: ComputerName: Κείμενο<o:p></o:p>
  • Πεδίο: WinUser: Κείμενο<o:p></o:p>
  • Πεδίο: AppUser: Κείμενο<o:p></o:p>
<o:p> </o:p>
Σε μια λειτουργική μονάδα περνάμε τον παρακάτω κώδικα:
Κώδικας:

  Function LogAction(obj As Object, Optional LastID&)
      With CurrentDb.OpenRecordset("tblLog", 2)
          If LastID Then
              LastID = IIf(obj.Tag <> vbNullString, obj.Tag, -1)
              obj.Tag = vbNullString
              .MoveFirst
              .FindFirst "LogID = " & LastID
              If Not .NoMatch Then
                  .Edit
                  .Fields("CloseDateTime") = Now
              End If
          Else
              .AddNew
              LastID = .Fields("LogID")
              obj.Tag = LastID
              .Fields("OpenDateTime") = Now
              .Fields("DocName") = obj.Name
              .Fields("ComputerName") = Environ("COMPUTERNAME")
              .Fields("WinUser") = Environ("USERNAME")
              .Fields("AppUser") = Application.CurrentUser
          End If
          .Update
          .Close
      End With
  End Function

<o:p> </o:p>

Σε κάθε μια από τις φόρμες ή εκθέσεις που θέλουμε να καταγραφούν :

Κώδικας:

  Private Sub Form_Close()
      LogAction Me, 1
  End Sub
 
  Private Sub Form_Load()
      LogAction Me, 0
  End Sub

<o:p> </o:p>


<o:p> </o:p>

mdragon 14-04-21 19:53

Καλησπέρα,
πώς μπορούμε να διαμορφώσουμε τον κώδικα ώστε να γράφει μόνο όταν η φόρμα είναι dirty????




Ευχαριστώ,
Μάρω


Η ώρα είναι 13:59.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2