Ich habe eine MS Access-Datenbank. Die Shift Taste wurde zuvor deaktiviert, aber wenn der Benutzer F11 drückt, kann er/sie das Navigationsfenster sehen. Gibt es eine Lösung zum Sperren des Schlüssels F11, um das Öffnen des Navigationsbereichs zu verhindern?Deaktivieren Sie F11 Geben Sie MS Access ein, um das Öffnen des Navigationsfensters zu verhindern
Antwort
Versuchen Sie zuerst, Ihr Problem zu googeln. Ich konnte mehrere Lösungen dafür finden.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF11 Then KeyCode = 0
End Sub
'(you need to set the form's Key Preview to Yes)
oder versuchen
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF11 Then
MsgBox "F11 key is Disabled", vbCritical, "Error"
End If
End Sub
Oder diese:
File -> Option -> Current DB -> Use Access special Keys (Uncheck)
Ref: Disable F11 with VBA
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyF11
KeyCode = 0
MsgBox "F11 has been disabled.", vbOKOnly, "Disabled Key"
End Select
End Sub
Dies auch auf diese Weise mit anderen Tasten getan werden kann. Fügen Sie einfach eine weitere Select-Case-Anweisung hinzu.
Stellen Sie sicher, dass Sie den Navigationsbereich auch anzeigen können, wenn Sie sich entscheiden, in der Zukunft Änderungen vorzunehmen - andernfalls können Sie sich selbst davon abhalten, Änderungen vorzunehmen.
Ihre Lösung ist korrekt, aber wenn der Fokus auf ein anderes Formular für jedes der Formulare ist, muss diesen Code hinzufügen. Ich habe gesucht und eine bessere Lösung gefunden. Autokey-Makro funktioniert in allen Teilen des Programms. Mit der F11-Taste, die im Makro definiert ist, und dem Makro, um Nachrichten anzuzeigen, löse ich dieses Problem. Vielen Dank für Ihre Hilfe lieber Freund –
Ich stimme zu, dies löst das Problem nicht. Wenn Sie 200 Formulare haben, müssen Sie alle Formulare ändern. Und wenn ein Repot angezeigt wird, wie fangen Sie dann das F11 ein - wie bereits erwähnt, ist ein Autoke-Makro die richtige Lösung. –
Erstens machen die Antworten hier keinen Sinn, denn wenn Sie 100 Formulare und 100 Berichte haben, dann müssen Sie 200 Objekte ändern. (Dies bedeutet eine enorme Verschwendung von Entwicklerzeit).
Viel schlimmer ist, wenn ein Bericht angezeigt wird, dann hat ein Formular nicht den Fokus und wieder sehen Sie das Navigationsfenster, wenn Sie F11 drücken.
Zugriff seit 20 Jahren hat die Möglichkeit, Code auszuführen und Maßnahmen für jede Fkey oder Alt-Taste treffen, um ein Makro auszuführen - und diese Einstellungen sind GLOBAL für die Anwendung.
Die einfache Lösung besteht also darin, ein automatisches Tastenmakro für die Anwendung zu erstellen und F11 einzuschließen. Dies wird somit GLOBAL für die Anwendung funktionieren.
Also erstellen Sie ein neues Makro (kein Modul) namens Autokeys. Das Makro wird wie folgt aussehen:
Sie können Funktionstasten in {}
Sie können auch^für Steuertasten eingestellt (so können Sie eine globale Drucktaste machen) zB:^P
Und Sie können + für die Shift-Taste verwenden, so
+ {F11} würde der Makro-Code, der ausgeführt wird, wenn Sie Shift F11
hit+^P wäre shift + ctrl P
In den oben genannten könnten wir F11-Code oder tun alles, was wir wollen, wie ein Formular starten, aber wie oben zeigt, lassen wir einfach den Action-Code innerhalb der F11-Code-Block leer. Dies kann verwendet werden, damit F1 ein benutzerdefiniertes Zugriffsformular "Hilfe" startet oder alle alternativen Schlüssel, die GLOBAL sind, der Anwendung neu zuordnet.
Sie dann einfach deaktivieren Sie die Show-nav-Bereich in der aktuellen Datenbank Starteinstellungen und Sie sind fertig. Natürlich wird man als Entwickler beim Start die Shift-Taste gedrückt halten, um zu verhindern, dass der Start-Code und die Formulare gestartet werden. Das überspringt auch das Auto-Key-Makro und ignoriert alle Einstellungen, die Sie in der aktuellen Datenbank vorgenommen haben das Navigationsfenster. Halten Sie die Shift-Taste gedrückt, und Sie können F11 verwenden, um zu zeigen, das Navigationsfenster auszublenden und den Programmcode nicht starten zu lassen, damit Sie als Entwickler arbeiten können.
Nur um zu verdeutlichen, weil ich ein wenig gebraucht habe, um Ihre Lösung herauszufinden: Es funktioniert, weil 'AutoKeys' selbst ein Schlüsselwort hier ist. Wenn Sie den Submakro 'AutoKeys' benennen, sucht er nach {F11}. Genius! Mein Kompliment an den Koch. –
- 1. Geben Sie beim Öffnen des Formulars das Dialogfeld "Parameterwert" ein
- 2. Die Größe des Access 2007-Navigationsfensters kann nicht geändert werden
- 3. Deaktivieren von Access 2013-Navigationsbereichoptionen
- 4. Geben Sie das Installationsverzeichnis des Schmuckstücks an
- 5. Deaktivieren geben ein
- 6. So deaktivieren Sie Notepad ++ Öffnen Sie vorherige Dateien automatisch, ohne Notepad ++ zu öffnen?
- 7. Access dauert lange, um Berichte zu öffnen
- 8. Geben Sie das Passwort mehrmals ein
- 9. Öffnen Sie ein Formular mit dem richtigen Unterformular in MS Access
- 10. ms-access: etwas an der Datenbank öffnen
- 11. MS Access wählen Sie das letzte Datum für jeden GroupID
- 12. Erstellen Sie gespeicherte Prozedur in MS Access?
- 13. MS Access: So fügen Sie programmgesteuert ein Unterformular hinzu
- 14. Deaktivieren Sie das Anzeigen des Konsolenfensters
- 15. So deaktivieren Sie das SSLv3-Protokoll in Jetty, um Pudelangriffe zu verhindern
- 16. Schließen Sie das aktuelle Formular und öffnen Sie ein anderes in Access?
- 17. MS Access - Unterformular Navigation
- 18. Wie Sie MS Access-Systeminformationen abrufen
- 19. So komprimieren Sie eine MS Access-Datenbank
- 20. Wie Sie das Umschließen von Text um das Kontrollkästchen deaktivieren
- 21. MS Access Focus nicht zu Teilformular verschieben
- 22. Pfad des Anwendungssymbols in MS Access
- 23. Erstellen Sie eine Funktion in Python, um das höchste aller Funktionsargumente zu finden, und geben Sie das "Tag" des Werts
- 24. So deaktivieren Sie das Abspielen eines Sounds
- 25. Erstellen Sie ein Google-Blatt mit einfachen Textzellen, um das automatische Formatieren von Zeichenfolgen zu verhindern
- 26. MS Access: Verknüpfen Sie einen Fortschrittsbalken zu einem laufenden Makro
- 27. So verbinden Sie MS Access zu Python mit pyodbc
- 28. Telerik ComboBox deaktivieren geben Sie klicken Sie auf oder deaktivieren Sie Formular beim Absenden eingereicht klicken
- 29. Deaktivieren Sie das Scrollen des Körpers, behalten Sie die Bildlaufleiste.
- 30. Öffnen Sie Hyperlinks in MS Outlook
Ihre Lösung ist korrekt, aber wenn der Fokus auf einem anderen Formular für jedes Formular liegt, muss dieser Code hinzugefügt werden. Ich habe gesucht und eine bessere Lösung gefunden. Autokey-Makro funktioniert in allen Teilen des Programms. Mit der F11-Taste, die im Makro definiert ist, und dem Makro, um Nachrichten anzuzeigen, löse ich dieses Problem. Vielen Dank für Ihre Hilfe lieber Freund –