IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Déplacement entre enregistrement


Sujet :

Access

  1. #1
    seb92400
    Invité(e)
    Par défaut Déplacement entre enregistrement
    Bonjour,
    Je parcours ce site depuis quelques temps, mais je n'arrive pas exactement à trouver l'info que je cherche... En espérant avoir bien cherché...

    Question : Comment faire pour bloquer le déplacement entre enregistrement dans un formulaire ?

    Je m'explique : J'ai créé un formulaire pour le boulot afin de référencer les clients et leurs commandes. Lorsque je suis sur une fiche client et ce que j'ai appelé le mode "modification", j'aimerais interdir tout changement d'enregistrement, que ce soit par la touche TAB (ça, je sais faire) ou par la molette de la souris (je sais faire aussi, merci à vous)... Mais également par la touche entrée sur le dernier contrôle ou encore par les touches PageUp ou PageDown, ou par je ne sais quelle autre touche possible... En d'autres termes j'aimerais dire :

    Tant que je suis en modif et que je n'ai pas validé les modifs que j'ai faites, il est impossible de changer d'enregistrement...

    Merci d'avance...

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Pour éviter de passer à l'enregistrement suivant avec la touche entrée, met la propriété Cycle du formulaire sur Enregistrement en cours.

    Pour les touches page Up et Page Down, met la propriété Aperçu des touches à Oui et sur l'événement Sur touche appuyée, tu places ce code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
     
        If Keycode = vbKeyPageUp or Keycode = vbKeyPageDown then 
     
            Keycode = 0 
     
        End if 
     
    End Sub
    Ca devrait le faire.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  3. #3
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    Bonjour,

    Regarde du coté de la propriété Dirty et la commande Docmd.cancelevent

    En les utilisant dans l'événement Sur Activation tu devrais y arriver.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  4. #4
    seb92400
    Invité(e)
    Par défaut
    Merci beaucoup... Je devrais pouvoir m'en sortir avec tout ça... Je pensais simplement qu'il existait une propriété style allow"changer-d'enregisterement" afin d'éviter de paramétrer toutes les touches... Fainéant, moi ??? Meuh nan...
    Merci... A bientôt...

  5. #5
    seb92400
    Invité(e)
    Par défaut
    Pas possible... Je viens de m'apercevoir qu'un appui sur Crtl+flèche haut ou bas change également d'enregistrement... Il n'y a donc vraiment aucune solution pour bloquer définitivement ce changement sans avoir à désactiver toutes les touches ???

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    L'événement Sur activation se produit lors de déplacement d'un enregistrement à un autre. Le problème c'est qu'il se déclenche également à l'ouverture du formulaire (normal puisqu'il y a également positionnement sur un enregistrement)

    Pour annuler une evenement il y a la commande docmd.cancelevent.

    Avec tout ça (Sur activation, Dirty, NewRecord, CancelEvent) tu devrais t'en sortir.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 45
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    Je up ce topic car je recherche une solution pour ce même probleme. => comment désactiver le déplacement d'enregistrement (action possible avec la molette, les pages shift haut et bas...)

    j'ai mis ca en place:

    Public gJe_Bloque As Boolean

    Private Sub Form_Activate()
    gJe_Bloque = False
    End Sub

    Private Sub Form_Current()
    'je ne bloque pas à l'ouverture du formulaire
    If gJe_Bloque = False Then
    gJe_Bloque = True
    Else
    'passage d'un enregistrement a un autre.
    'je bloque
    msgbox "Je bloque"
    DoCmd.CancelEvent
    End If
    End Sub

    Mon message "Je bloque", apparait bien quand je souhaite bloquer le déplacement mais la commande DoCmd.CancelEvent ne bloque pas? Que faut t'il place dans la zone Else pour annuler le déplacement.

    Ou alors existe t'il une autre méthode plus sympas...

    Merci

Discussions similaires

  1. [AC-2007] Déplacement entre enregistrements : PAGEUP / PAGEDOWN
    Par junty dans le forum IHM
    Réponses: 2
    Dernier message: 27/12/2011, 14h26
  2. [AC-2003] evenement sur déplacement entre enregistrements
    Par pauls30 dans le forum IHM
    Réponses: 1
    Dernier message: 10/05/2011, 14h34
  3. Pb de déplacement entre enregistrements
    Par Orion34080 dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/04/2011, 09h04
  4. DAO-Déplacement entre enregistrements
    Par Lingo dans le forum Access
    Réponses: 15
    Dernier message: 20/10/2006, 12h55
  5. déplacement entre enregistrement
    Par xycoco dans le forum Access
    Réponses: 4
    Dernier message: 25/10/2004, 19h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo