Question

J'ai un formulaire dans Access 2003 qui ne devrait travailler avec un seul enregistrement. Je peux définir la propriété Cycle à Current Record, mais la forme des sauts encore à l'enregistrement suivant quand j'appuyez sur Entrée. Ma première pensée était une propriété KeyPreview, mais je ne vois pas un. Mon autre pensée est peut-être l'événement KeyPress ou KeyUp, mais je pensais que je demande en cas de conséquences imprévues. Toutes les idées?

Était-ce utile?

La solution

La propriété Cycle sur la touche TAB affecte uniquement.

Pour contrôler le comportement de la touche Entrée qui est une propriété globale.

Allez dans Outils / Options - onglet Clavier et sur "Move Après Enter" sélectionner "champ suivant"

Il y a des événements KeyPress et KeyDown que vous pouvez utiliser pour piéger la touche Entrée trop mais c'est plus de travail.

Autres conseils

Cela peut aussi se faire en vba.

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

Les touches de moment comme TAB , Alt , PgUP , PgDn , Entrée sont pressés à la fin de l'ajout du dossier (après le dernier champ la plupart du temps), l'auto de base de données enregistre toutes les informations saisies sur le formulaire et efface les champs afin que vous puissiez entrer la valeur suivante. Donc, ce qui se passe est que les données sont enregistrées, mais la forme semble vide.

3 choses à faire:

  1. Formulaire Cycle Propriété réglée sur Record actuel.
  2. Aperçu du formulaire clé de la propriété définie sur Oui.
  3. Ajoutez le code suivant à l'événement KeyDown du formulaire:

    '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
    

    Je trouve cela tout récurer le web et ne prends pas de crédit / responsabilité pour le code, mais je ne sais pas où je l'ai trouvé. Fonctionne pour moi!

La propriété Cycle fonctionne uniquement avec la touche Tab.

Il y a deux options que vous pouvez poursuivre.

Vous pouvez piéger la touche Entrée dans KeyDown / KeyUp / KeyPressed
- OU -
Vous pouvez filtrer la source de données à l'un enregistrement que vous souhaitez éditer les, et désactiver l'ajout de nouveaux enregistrements par cette forme.

Vous pouvez ajouter ci-dessous le code à votre formulaire d'événement « AvantMAJ ». Si l'utilisation veulent passer à enregistrement suivant, il vous demandera utilisateur d'enregistrer puis fermez le formulaire avant de pouvoir passer à un autre recorde.

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

Si vous allez dans les options d'accès sur la page de fichier, allez dans Paramètres du client et le premier paramètre vous permettra de choisir l'endroit où vos changements de focus lorsque vous appuyez sur Entrée. Au moins dans Access 2013.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top