Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > Ημιδιαφάνεια στις αναδυόμενες και αποκλειστικές φόρμες

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 18-03-13, 14:05
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλησπέρα!

Ο κώδικας του συμβάντος Form_Timer() στη φόρμα " frmBg" ελέγχει
ποιο παράθυρο έχει την εστίαση και κάνει τις ανάλογες ενέργειες.

Πιο αναλυτικά:

Κώδικας:
' frmName = Μεταβλητή τύπου "String". περιέχει το όνομα της αναδυόμενης φόρμας.
' WHandle = Μεταβλητή τύπου "Long" παίρνει που επιστρέφει η GetActiveWindow()
' frmHandle = Μεταβλητή τύπου "Long" ; το νούμερο του παραθύρου της αναδυόμενης φόρμας

Private Sub Form_Timer()
' έχει ρυθμιστεί να εκτελείται κάθε 50 χιλιοστά του δευτερολέπτου.

    On Error Resume Next
    If Not IsOpen(frmName) Then
        ' Αν η αναδυόμενη φόρμα δεν βρίσκεται σε κανονική προβολή τότε...

        DoCmd.Close acForm, Me.Name
        '...Κλείνει την ημιδιαφανή φόρμα "frmBg" (αυτή τη φόρμα)

        DoCmd.Close acForm, frmName
        '...Κλείνει την αναδυόμενη φόρμα

        Exit Sub
        '...Εξοδος από τη διαδικασία

    End If

    WHandle = GetActiveWindow()
    ' GetActiveWindow() = συνάρτηση  API που επιστρέφει το νούμερο του
    ' εστιασμένου παραθύρου. Θα μπορούσε κανείς να χρησιμοποιήσει την
    ' Screen.ActiveForm της Access. Δεν λειτουργεί σωστά σε παλαιότερες εκδόσεις Access


    If WHandle <> frmHandle Then
        ' Αν το νούμερο του εστιασμένου παραθύρου είναι διαφορετικό από το νούμερο
        'της αναδυόμενης φόρμας....

        If GetActiveWindow = Me.hWnd Then
            '...και εάν το νούμερο του εστιασμένου παραθύρου είναι διαφορετικό
            ' από το νούμερο αυτής της φόρμας που σημαίνει ότι ο χρήστης έχει
            ' εστιάσει κάποιο παράθυρο έκτός της εφαρμογής τότε...

            DoCmd.Close acForm, Me.Name
            ' Κλείνει την ημιδιαφανή φόρμα "frmBg" (αυτή τη φόρμα)

            DoCmd.Close acForm, frmName
            ' Κλείνει την αναδυόμενη φόρμα

        End If
    End If
End Sub
Φιλικά

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


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Φόρμες ] Αναζήτηση σε φόρμες που επιστρέφει φόρμες theo93 Access - Ερωτήσεις / Απαντήσεις 17 12-08-14 09:54
φόρμες - υποφόρμες tolkap Access - Ερωτήσεις / Απαντήσεις 0 17-01-14 18:17
[ Φόρμες ] Aυτόματη προσαρμογή στις διαστάσεις της οθόνης mikekal1oo Access - Ερωτήσεις / Απαντήσεις 4 29-04-13 13:52
Απορία σχετικά με το πως βάζω όριο στις μέρες ενοικίασης Vansel Access - Ερωτήσεις / Απαντήσεις 19 02-06-12 12:10
Φόρμες πολλαπλών ενεργειών Zoe Forte Access - Ερωτήσεις / Απαντήσεις 2 08-05-12 23:10


Η ώρα είναι 14:01.