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

Μάρω καλησπέρα!

Το συμβάν KeyDown() εξαπολύεται από στοιχεία που το υποστηρίζουν και που έχουν την εστίαση (Focus).
Δεν είναι δυνατόν να εξαπολυθεί το συμβάν της φόρμας KeyDown() αφού στο 99,9% των περιπτώσεων ή εστίαση βρίσκεται σε κάποιο στοιχείο της φόρμας και όχι στην ίδια τη φόρμα.

Μπορείς να κάνεις τα εξής:

Φτιάξε μια μακροεντολή με το όνομα AutoKeys.

Στην προβολή σχεδίασης της πάτησε το κουμπί Ονόματα μακροεντολών (Acc 2007), και στη στήλη που θα εμφανιστεί πληκτρολόγησε: {F5}
Στη στήλη Ενέργεια επέλεξε Εκτέλεση κώδικα και σαν όνομα συνάρτησης δώσε:
ShowHide()

Πέρασε την ShowHide() σε ένα κοινό Module.

O κώδικας της ShowHide():

Κώδικας:
Option Compare Database
Option Explicit

Function ShowHide()
    Dim FBool1 As Boolean, FBool2 As Boolean
    FBool1 = IsOpen("Form1"): FBool2 = IsOpen("form2")
    If FBool1 And FBool2 Then
        DoCmd.Close acForm, "Form2"
    ElseIf FBool1 Then
        DoCmd.Close acForm, "Form1"
        DoCmd.OpenForm "Form2"
    ElseIf FBool2 Then
        DoCmd.Close acForm, "Form2"
        DoCmd.OpenForm "Form1"
    Else
        DoCmd.OpenForm "Form1"
    End If
End Function

Function IsOpen(FormName$) As Boolean
    If SysCmd(10, 2, FormName) <> 0 Then
        If Forms(FormName).CurrentView = 1 Then IsOpen = True
    End If
End Function
Ελπίζω να βοήθησα

Φιλικά

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