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

IHM Discussion :

Pas de sauvegarde de l'enregistrement en cours


Sujet :

IHM

  1. #1
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut Pas de sauvegarde de l'enregistrement en cours
    Bonjour à tous ...

    Dans la FAQ j'ai trouvé ce code qui permet d'annuler la sauvegarde d'un enregistrement.

    Placez le code suivant dans l'évènement Avant MAJ du formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'variable stockant la réponse donnée dans la boite de dialogue Dim intReponse As Integer 'si il y a eu des modifications on demande la confirmation If Me.Dirty Then 'message pour l'utilisateur intReponse = MsgBox("Voulez-vous enregistrer ?", vbYesNoCancel, "Confirmation") Select Case intReponse Case vbYes ' oui est choisit, on ne fait rien puisque le ' comportement par defaut de Access est d'enregistrer. Case vbNo ' non est choisit donc on annule les modification Me.Undo Case vbCancel ' Annuler est choisit donc on annule la manipulation Cancel = True End Select End If
    Remarque : en utilisant l'évènement Avant MAJ, vous aurez une demande de confirmation dans tous les cas : changement d'enregistrement, fermeture du formulaire....
    Dans la FAQ il est précisé que l'on doit coller ce code dans l'évènement Avant MAJ du formulaire.

    Jusque là, pas de soucis.

    En fait ce que j'aimerais faire c'est utiliser ce code pour la programmation d'un de mes boutons. En fait j'aimerais que lorsque l'utilisateur quitte le formulaire ( en pressant sur le bouton ) qu'il y ait un msg Box qui vienne et qui demande si l'on veut enregistrer ou pas .. et si l'on clique sur non j'aimerais utiliser ce code ... mais je ne vois pas bien comment faire ...

    Je sais comment faire pour faire venir un msgbox et je sais aussi comment faire pour savoir si il clique sur oui ou non ou annuler ... pas de soucis là dessus ... ce que je ne vois pas c'est comment utiliser ce code c'est à dire comment remplacer l'évènement AVANT MAJ DU FORMULAIRE ...

    Merci de vos réponses ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  2. #2
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Tu peux utiliser un MsgBox de type YesNo.
    Si la réponse est VbYes alors c'est qu'il a choisi oui.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If MsgBox("oui ou non ?", vbYesNo, ".:: Confirmation ::.") = vbYes Then
        MsgBox "il a choisi oui !"
    End If
    En espérant t'aider.
    J'aime les gâteaux.

  3. #3
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Exuce moi Demco je n'avais pas vu ta réponse .... le problème n'est pas sur comment utiliser la fonction MsgBox car la y a pas de soucis ... le problème c'est que je ne vois pas bien comment utiliser le code de la FAQ ... ...

    Voici ce que j'ai tenté de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Si la réponse vaut 7 --> NON alors
            If str_reponse_enregistrement = 7 Then
     
                'On enregistre pas ce que l'on a modifié
                Me.Undo
     
            'Fin du IF concernant la réponse = 7.
            End If
    Es ce que c'est le Me.Undo qui fait que l'enregistrement ne se sauvegarde pas ???

    En fait ouais je ne comprends pas bien comment il faut que je prenne le problème ...

    Merci pour votre aide ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Utilise les constantes et non leur valeur

    If reponse=VBNo then ...

  5. #5
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Voila ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Si la réponse vaut NON alors
            If str_reponse_enregistrement = vbNo Then
     
                'On enregistre pas ce que l'on a modifié
                Me.Undo
     
            'Fin du IF concernant la réponse = 7.
            End If
    Tofalu pendant que tu est dans le coin, si j'ose me permettre ...

    Vois-tu comment je pourrais faire pour introduire le code de la FAQ dans mon code ...

    car si maintenant je laisse le code comme il est là, cela ne fait rien d'apparant lorsque je clique sur NON à la question voulez-vous enregistrer ... ... ...

    En fait ce que j'aimerais c'est que lorsque je clique sur non qu'il y ait tous les champs que j'ai modifié qui revienne comme avant la modification ...

    Vous voyez plus le truc ???

    Merci de votre aide ...

    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  6. #6
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    En fait ce que j'aimerais faire c'est une simulation de l'appui de la touche ECHAP lorsque je clique sur non dans ma msgBox ...

    je vais jeter un oeuil si je peux faire cela en VBA ...

    On peut bien paramètrer les touches F1 à F12 alors je vais essayer de faire la même chose avec ECHAP ...

    Si vous avez d'autre idée ....
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  7. #7
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Dans la FAQ j'ai trouvé un article qui dit que :

    ME.UNDO permet de simuler la fonction annuler ...

    Donc c'est ce que j'ai dans mon code que j'ai essayé de faire ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    'Si la réponse vaut NON alors
            If str_reponse_enregistrement = vbNo Then
                'On enregistre pas ce que l'on a modifié
                Me.Undo
            'Fin du IF concernant la réponse = 7.
            End If
    Donc, d'où provient l'erreur ???

    je ne comprends pas trop... pourtant je l'utilise bien ...

    Merci de vos réponses
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  8. #8
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Je pense que tu vas devoir passé par un formulaire non connecté :
    http://access.developpez.com/faq/?re...+modifications

    En espérant t'aider.
    J'aime les gâteaux.

  9. #9
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Merci pour ta réponse Demco ... mais j'ai une question qui me tracasse ...


    Est-ce qu'il n'y à pas un moyen de simuler l'action de l'évènement AVANT MAJ d'un formulaire ...

    car en fait le code que j'ai fait marche mais ouais le problème c'est qu'il n'est pas sur le bon évènement ... donc est-ce qu'il est possible d'appeler une procédure faite sur un évènement ??

    Je vais regarder le lien que tu m'as mis et je vais me renseigner sur les formulaires non connecté car je ne sais absolument pas ce que c'est ...

    Merci de ton aide en tout cas ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  10. #10
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    1/ Pour simuler la touche Echap et fermer le formulaire en proposant à l'utilisateur de confirmer la sauvegarde, il faut que tu mettes "Aperçu des touches à Oui (KeyPreview) dans les propriété du formulaire... Ensuite tu recopies ou adapte ce code:

    2/ Code conséquent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Option Compare Database
    Option Explicit
     
    Private m_blnDataChanged As Boolean
    Private m_CloseWithEscape As Boolean
     
    Private Sub Form_Close()
      If m_CloseWithEscape Then Exit Sub
      If m_blnDataChanged Then
        SaveBeforeClose
      End If
    End Sub
     
    Private Sub Form_Dirty(Cancel As Integer)
      m_blnDataChanged = True
    End Sub
     
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
      If KeyCode = vbKeyEscape Then
        If m_blnDataChanged Then
          m_CloseWithEscape = True
          SaveBeforeClose
          DoCmd.Close acForm, Me.Name
        End If
      End If
    End Sub
     
    Private Sub SaveBeforeClose()
          If MsgBox("Vous êtes sur le point de fermer la consultation en cours..." & vbCrLf & "Voulez-vous enregistrer les modifications ?", vbYesNo, "Fermer") = vbYes Then
            DoCmd.RunCommand acCmdSaveRecord
          Else
            DoCmd.RunCommand acCmdUndo
          End If
    End Sub
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  11. #11
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Merci de ta réponse Argy ... je vais essayer de voir ton code et de le comrpendre ...

    Si toute fois j'ai un soucis je viendrai te le dire ...

    Mais en attendant Merci pour ton aide ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

Discussions similaires

  1. [AC-2007] Sauvegarder enregistrement en cours du formulaire
    Par Lincoln911 dans le forum VBA Access
    Réponses: 5
    Dernier message: 17/05/2010, 13h30
  2. Empecher Lecture d'Enregistrement en cours de Modification
    Par toony dans le forum Administration
    Réponses: 4
    Dernier message: 09/12/2009, 11h18
  3. Réponses: 7
    Dernier message: 12/01/2005, 11h30
  4. Réponses: 2
    Dernier message: 10/10/2004, 23h12
  5. Réponses: 7
    Dernier message: 06/10/2004, 22h13

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