freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Χρήση Function Keys (και κουμπιών γενικώς) μόνο από φόρμα.


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MS Access
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [6 Μηνύματα]      Bookmarks Tags: φόρμα Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
cghera


Μέλος από: 02 Ιουν 2010
Μηνύματα: 11

View users profile
ΜήνυμαΣτις: 03 Ιουν 2010 00:46    Θέμα: Χρήση Function Keys (και κουμπιών γενικώς) μόνο από φόρμα. Απάντηση με παράθεση  Mark this post and the followings unread

Καλησπερα,

Έχω μία βάση Access 2007, και σε αυτήν έχω κάποιες φόρμες.
Αυτό που θέλω να κάνω (αν γίνεται με κάποιο τρόπο) είναι να ακυρώσω τις native λειτουργίες των function keys και των υπόλοιπων κουμπιών (π.χ. insert delete pgup κλπ).
Για παράδειγμα. Θέλω ενώ βρίσκομαι σε μία φόρμα datasheet με το κουμπί f5 να μπαίνω σε μία φόρμα τύπου καρτέλας πελάτη. Ενεργοποίησα μία λειτουργία key preview με την οποία κάνω capture τα function keys και μετά στο event keydown ανοίγω τη φόρμα. Το ζήτημα είναι οτι μετά το άνοιγμα της φόρμας πελάτη, το datasheet κάνει και refresh (αυτό που κάνει κανονικά το f5 δηλαδή στο datasheet) και αν είμαι στον πελάτη 5000 π.χ. γυρνάω (στο datasheet πάντα) στον πρώτο.Οπότε κλείνοντας την καρτέλα, βγαίνει πάλι στην αρχή της λίστας και όχι εκεί που ήταν πριν. Κάνω δηλαδή αυτό που θέλω και κάνει και στο καπάκι τη default λειτουργία η access.
Στο κουμπι delete αντίστοιχα όταν είμαι στην καρτέλα θέλω να εμφανίζει μήνυμα διαγραφής και να διαγράφεται η εγγραφή. Πάλι με keydown event κάνω capture το πλήκτρο και εμφανίζω μήνυμα επιβεβαίωσης. Αν ο χρήστης δώσει ναι η εγγραφή διαγράφεται κανονικά. Αν όμως δώσει όχι στο warning, μετά το τέλος του δικού μου κώδικα, παίζει κανονικά και η λειτουργία delete, και αν είναι σε κάποιο πεδίο το focus διαγράφεται κάποιο γράμμα ή όλο το κείμενο αν ήταν επιλεγμένο.

Υπάρχει τρόπος να ακυρώσω αυτές τις "default" ενέργειες;
Μη μου πείτε να αλλάξω πλήκτρα ή να δουλέψω με buttons. Ο λόγος που το θέλω έχει να κάνει με migration από dos εφαρμογή και θέλω η λειτουργικότητα να παραμείνει όσο το δυνατό ίδια. Και αποφεύγω χρήση buttons (θα βάλω και τέτοια αλλά θέλω και keyboard driven) για να γίνεται πιο γρήγορα το data entry και γενικώς η εργασία.
(δεν ξέρω αν έχετε δει σε dos πόσο γρήγορα αλλάζουν φόρμες και εισάγουν δεδομένα πατώντας πλήκτρα στα "τυφλά" οι χρήστες)
Προσπαθώ λοιπόν πρώτα να εξαντλήσω τα περιθώρια και μετά αν αναγκαστώ να αλλάξω τις συνήθεις του χρήστη.
Σας ευχαριστώ για το χρόνο σας.
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 03 Ιουν 2010 08:02    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

http://msdn.microsoft.com/en-us/library/aa196210%28office.11%29.aspx

παράθεση:
To handle keyboard events only at the form level and prevent controls from receiving keyboard events, set the KeyAscii argument to 0 in the form's KeyPress event procedure, and set the KeyCode argument to 0 in the form's KeyDown and KeyUp event procedures.
cghera


Μέλος από: 02 Ιουν 2010
Μηνύματα: 11

View users profile
ΜήνυμαΣτις: 03 Ιουν 2010 10:52    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ευχαριστώ πολύ για τη βοήθεια.
cghera


Μέλος από: 02 Ιουν 2010
Μηνύματα: 11

View users profile
ΜήνυμαΣτις: 09 Σεπ 2010 18:29    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Σε συνέχεια της προηγούμενης ερώτησης, ψάχνω να βρω ένα τρόπο να αντικαταστήσω το συνηθισμένο shortcut CTRL + "+" που προσθέτει νέα εγγραφή σε φόρμα με το πλήκτρο insert.
Τί κωδικα πρέπει να βάλω εκεί που κάνω trap το vbkeyinsert ωστε η φόρμα να έρθει σε νέα εγγραφή;;
Δεν μπόρεσα να βρω κάποια μέθοδο για τη φόρμα που να προσθέτει νέο record με κενά στοιχεία. Το μόνο που βρήκα είναι το κουμπί που φτιάχνει αυτόματα η access και εκτελεί ένα macro.
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 09 Σεπ 2010 18:52    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Για δοκίμασε με κάποιο από αυτά
κώδικας:
DoCmd.RunCommand acCmdRecordsGoToNew
κώδικας:
DoCmd.GoToRecord acActiveDataObject, , acNewRec
cghera


Μέλος από: 02 Ιουν 2010
Μηνύματα: 11

View users profile
ΜήνυμαΣτις: 09 Σεπ 2010 23:38    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Για άλλη μία φορά ευχαριστώ. Με βοηθάς πολύ.
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [6 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MS Access
Τώρα είναι 10 Δεκ 2016 06:59 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos