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

Καλημέρα σε όλους και χρόνια πολλά!

Αγαπητή Μάρω, η δημιουργία μιας μακροεντολής με το όνομα "AutoKeys" όπου θα δέσμευες τον συνδυασμό πλήκτρων CTRL +Q (^Q στην Access) θα σου πρόσφερε αρκετή βοήθεια.

Αφού δημιουργήσεις τη μακροεντολή πέρασε την επιλογή "Εκτέλεση κώδικα" και σαν όνομα συνάρτησης δώσε: CloseQryHwnd() και αποθήκευσε.

Κατόπιν σε μια λειτουργική μονάδα πέρασε τον παρακάτω κώδικα:

Κώδικας:
Function CloseQryHwnd()
    Dim Qryname As String, Qry As QueryDef
    On Error Resume Next
    Qryname = Screen.ActiveDatasheet.Name
    If Qryname <> vbNullString Then
        For Each Qry In CurrentDb.QueryDefs
            If Qry.Name = Qryname Then
                DoCmd.Close acQuery, Qryname, acSaveNo
                Exit For
            End If
        Next
    End If
End Function
Κάνε επανεκκίνηση στης εφαρμογής και δοκίμασε να κλείσεις τα παράθυρα των ερωτημάτων σου με τον προγραμματισμένο συνδυασμό πλήκτρων ( CTRL +Q ).

Αν αντιμετωπίσεις πρόβλημα αυτό σημαίνει ότι έχεις ταυτόχρονα μια η περισσότερες (μη αναδυόμενες) φόρμες ανοιχτές....(Νομίζω ότι πρόκειται για Bug της Access (2007 - 2010).
Στην περίπτωση αυτή:
1. Άνοιξε τις φόρμες αυτές σε προβολή σχεδίασης κάνε μια μικροαλλαγή, αναίρεσε την αλλαγή αυτή (Undo) και αποθήκευσε τις.
2. Από το κουμπί Μετατροπή μακροεντολών σε Visual Basic μετέτρεψε την AutoKeys σε συνάρτηση VBA και αποθήκευσε.
Με την επόμενη επανεκκίνηση της εφαρμογής όλα θα λειτουργούν όπως αναμένεται και μπορείς πια να διαγράψεις τη νέα λειτουργική μονάδα:
"Μακροεντολή που μετατράπηκε - AutoKeys".,

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

Φιλικά

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