Frage

Ich habe ein Formular in Access 2003, das nur mit einem einzigen Datensatz arbeiten sollte. Ich kann die Cycle Eigenschaft auf Current Record, aber die Form springt noch auf den nächsten Datensatz, wenn ich die Eingabetaste drücken. Mein erster Gedanke war eine KeyPreview Eigenschaft, aber ich bin nicht ein zu sehen. Mein anderer Gedanke ist vielleicht das KeyPress oder KeyUp Ereignis, aber ich dachte, dass ich im Fall einer unbeabsichtigten Konsequenzen fragen würde. Irgendwelche Ideen?

War es hilfreich?

Lösung

Der Zyklus-Eigenschaft wirkt sich nur auf die TAB-Taste.

Um das Verhalten der Enter-Taste zu steuern, die eine globale Eigenschaft ist.

Gehen Sie

Sie auf Extras / Optionen - Registerkarte Tastatur und auf „Move Nach Eingabe“ wählen Sie „Nächstes Feld“

Es gibt KeyPress und KeyDown Ereignisse, die Sie zu stoppen die Enter-Taste verwenden, aber das ist mehr Arbeit.

Andere Tipps

Dies kann auch in vba erfolgen.

Application.GetOption "Move After Enter" 'get current setting
Application.SetOption "Move After Enter", 0 'don't move
Application.SetOption "Move After Enter", 1 'Next Field
Application.SetOption "Move After Enter", 2 'Next Record

http: //www.pcreview. co.uk/forums/enter-key-moving-next-field-t3454281.html

Die Zeit Tasten wie TAB , Alt , PgUP , Bild ab , Enter werden die Aufzeichnung der Zugabe am Ende gedrückt (nach dem letzten Feld meistens), speichert die Datenbank automatisch alle Informationen, die Sie auf dem Formular eingegeben und die Felder tilgt, so dass Sie den nächsten Wert eingeben. Also, was passiert ist, dass die Daten gespeichert werden, sondern die Form sieht leer.

3 Dinge zu tun:

  1. Formular Zyklus-Eigenschaft auf aktuellen Datensatz.
  2. Form Key Vorschau-Eigenschaft auf Ja.
  3. In dem KeyDown-Ereignis des Formulars folgenden Code:

    '33 - PgUp; 34 - PgDown; 9 - Tab; 18=Alt; 13=Enter
    
    Select Case KeyCode
    Case 33, 34, 18, 9, 13
    KeyCode = 0    
    Case Else
    'Debug.Print KeyCode, Shift
    End Select
    

    Ich fand diese, während die Web-Scheuern und keinen Kredit / Verantwortung für den Code nehmen, aber ich weiß nicht, wo ich es gefunden. Funktioniert bei mir!

Die Zyklus-Eigenschaft funktioniert nur mit der Tab-Taste.

Es gibt zwei Optionen, die Sie könnten verfolgen.

Sie können fangen die Enter-Taste in KeyDown / KeyUp / KeyPressed
- ODER -
Sie könnten die Datenquelle zum einen Datensatz filtern Sie wollen bearbeiten, und deaktivieren Sie das Hinzufügen neuer Datensätze durch diese Form.

Sie können Code unten in das Formular ‚VorAktualisierung‘ Ereignis hinzuzufügen. Wenn die Verwendung zum nächsten Datensatz wechseln will, wird es Benutzer fragen, dann schließen Sie das Formular speichern, bevor sie in einem anderen recorde bewegen kann.

  Private Sub Form_BeforeUpdate(Cancel As Integer)
    Select Case MsgBox("Save?", vbYesNo)
      Case vbYes
        DoCmd.Close
      Case vbNo
        Cancel = True
    End Select
  End Sub

Wenn Sie in Access-Optionen auf die Datei Seite gehen, gehen Sie auf Client-Einstellungen und die erste Einstellung lässt Sie wählen, wo Sie Ihren Fokus wechselt zu, wenn Sie die Eingabetaste drücken. Mindestens in Access 2013.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top