Εμφάνιση ενός μόνο μηνύματος
  #5  
Παλιά 17-02-11, 10:20
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλημέρα σε όλους!
Γιώργο μου, θα πρέπει να "παλέψεις" πολύ για να ανιχνεύσεις το πάτημα των (πολλών) κουμπιών που προκαλούν αλλαγή διάταξης εγγραφών μια φόρμας!
Αφου λοιπόν βρείς τα Control ID των κουμπιών που σ ενδιαφέρουν, μπορείς να παρακολουθήσεις
μέσα από μια Λειτουργική μονάδα Κλάσσης το συμβάν "Click" των κουμπιών που θα επιλέξεις.

Παρακάτω εξηγείται πως, αλλά λειτουργεί μόνο σε "Κλασσικά CommandBars" και σε μενού συντόμευσης
σε όλες τις εκδόσεις της Access, όχι όμως σε κορδέλλα (Ribbon)!
Για τη δεύτερη (Ribbon) θα χρειαστεί η τροποποίηση του με χρήση κώδικα XML που κατά τη
γνώμη μου θα πρέπει αναπτυχθεί σε νέο θέμα.

Σε μια Λειτουργική μονάδα Κλάσσης με το όνομα:clsAccCmds
περνάμε τον παρακάτω κώδικα:

Κώδικας:
Option Compare Database
'Χρειάζεται αναφορά (Reference) VBA στη βιβλιοθήκη MSO.dll (Microsoft Office xx.x Object Library)
Option Explicit
Public WithEvents CmdSortAscending As Office.CommandBarButton
Public WithEvents CmdSortDescending As Office.CommandBarButton

Private Sub CmdSortAscending_Click(ByVal Ctrl As Office.CommandBarButton, _
        CancelDefault As Boolean)
    MsgBox acCmdSortAscending
End Sub

Private Sub CmdSortDescending_Click(ByVal Ctrl As Office.CommandBarButton, _
        CancelDefault As Boolean)
    MsgBox acCmdSortDescending
End Sub
και στη φόρμα:
Κώδικας:
Option Compare Database
Option Explicit
Private myButtons As New clsAccCmds

Private Sub Form_Load()
    Set myButtons.CmdSortAscending = Application.CommandBars.FindControl(ID:=210)
    Set myButtons.CmdSortDescending = Application.CommandBars.FindControl(ID:=211)
End Sub
Έτσι παρακολουθείς τα κουμπιά ταξινόμησης της Access με εξαίρεση αυτά της κορδέλας (2007+)

Καλή συνέχεια

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση