2016-06-29 26 views

Antwort

0

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

+0

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 –

1
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.

+0

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 –

+0

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. –

3

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:

enter image description here

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.

+0

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. –

Verwandte Themen