Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Άνοιγμα φόρμας με F5 (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/563-anoigma-formas-me-f5.html)

mdragon 22-04-10 20:50

Άνοιγμα φόρμας με F5
 
Καλησπέρα σε όλους,

έχω μία φόρμα "Πίνακας Επιλογών" και άλλη μία "ΕΤΑΙΡΙΑ" ΄
Θέλω όταν είμαι στην 1η φόρμα να πατάω F5 και αφού κλείσει να μου ανοίξει την 2η φόρμα
η οποία με την σειρά της όταν κλείσει να μου ξαναανοίξει την 1ή

Τι κάνω λάθος????:023:



Στη φόρμα Πίνακας Επιλογών έχω

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Const conKey_F5 = &H74 ' F5 Key constant
Select Case KeyCode

Case conKey_F5
DoCmd.Close
DoCmd.OpenForm "ΕΤΑΙΡΙΑ"
KeyCode = 0
Case Else
End Select
If KeyCode = Asc("L") And Shift = 2 Then
Beep: Beep: Beep: Beep

End If
If KeyCode = 76 And Shift = 1 Then DoCmd.OpenForm "ΕΤΑΙΡΙΑ"
End Sub


Στην φόρμα ΕΤΑΙΡΙΑ έχω

Private Sub Form_Close()
DoCmd.OpenForm "Πίνακας επιλογών"
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Then DoCmd.Close
End Sub




Ευχαριστώ,
Μάρω

Tasos 22-04-10 23:28

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

Το συμβάν 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

Ελπίζω να βοήθησα

Φιλικά

Τάσος

mdragon 23-04-10 17:05

Να ΄σαι καλά Τάσο μου,
λειτουργεί μια χαρά


Ευχαριστώ,
Μάρω


Η ώρα είναι 19:57.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2