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 :

Bouton activer / désactiver un formulaire


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    statisticien
    Inscrit en
    Juin 2017
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2017
    Messages : 54
    Points : 46
    Points
    46
    Par défaut Bouton activer / désactiver un formulaire
    Bonjour à tous,

    Je pense que ce sujet a déjà été traité mais je n'ai pas trouvé de solution à mon problème et m'en remet donc à vous.

    Voila j'ai un formulaire contenant des données que je souhaiterais verrouiller / déverrouiller à la modification en cliquant sur un bouton.
    En fouillant sur les divers forums j'ai concocté le code suivant :
    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
    Sub form_current()
        etat = 1
        Me.AllowEdits = False
    End Sub
     
    'boutons
        'modif
    Private Sub modif_Click()
        If etat = 0 Then
            Me.AllowEdits = False
            Me.AllowAdditions = False
            Me.AllowDeletions = False
            modif.Caption = "Modifier"
            etat = 1
        Else
            Me.AllowEdits = True
            Me.AllowAdditions = True
            Me.AllowDeletions = True
            modif.Caption = "Enregistrer"
            etat = 0
        End If
    End Sub
    Seul hic le programme s'en fou pas mal de mon code. Toutes les lignes sont exécutées (la propriété allowedits passe bien de true à false) mais je peux toujours modifier toutes les cases de mon formulaire.

    Je précise si jamais c'est important que mon bouton se trouve dans l'entête de formulaire et que la partie à verrouiller / déverrouiller serait la partie "détail".

    Merci par avance pour vos messages.

    Cordialement,

    y_vidal

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Je ne comprends pas la condition :

    Quel est l'intérêt de cette valeur puisqu'elle est toujours à 1

  3. #3
    Membre du Club
    Homme Profil pro
    statisticien
    Inscrit en
    Juin 2017
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2017
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Quand on ouvre la fiche la valeur "etat" est à 1 => La fiche est verrouillé.
    Si on clique sur le bouton "modif" la macro "modif_click()" s'exécute => la fiche se déverrouille, "etat" = 0 et modif.caption = "enregistrer".
    Si on reclique sur le bouton "modif" la macro "modif_click()" s'exécute à nouveau => la fiche se verrouille, "etat" = 1 et modif.caption = "modifier".

    Du moins c'était l'idée.

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 842
    Points : 14 946
    Points
    14 946
    Par défaut
    bonsoir,
    pourquoi ne pas utiliser un bouton bascule ?

    Nom : _btnBascule.JPG
Affichages : 376
Taille : 18,4 Ko

    c'est très pratique car le bouton change de valeur selon qu'il est appuyé ou non et cela évite d'utiliser une variable.
    Ensuite j'utiliserai la propriété du formulaire RecordSetType (2: Instantané = Lecture seule, 0: Feuille de réponse dynamique = mise à jour) pour autoriser ou non la saisie.
    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
    Private Sub Form_Load()
    Me.modif = 0
    Call modif_Click
    End Sub
     
    Private Sub modif_Click()
    If Me.modif = -1 Then
        Me.modif.Caption = "Enregistrer"
        Me.RecordsetType = 0
    Else
        Me.modif.Caption = "Modifier"
        Me.RecordsetType = 2
    End If
     
    End Sub

  5. #5
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Et pourquoi pas utiliser la légende des boutons directement

    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
    Sub form_current()
        Me.AllowEdits = False
    End Sub
     
    'boutons
        'modif
    Private Sub modif_Click()
        If me.ActiveControl.Caption = "Enregistrer" Then
            Me.AllowEdits = False
            Me.AllowAdditions = False
            Me.AllowDeletions = False
            modif.Caption = "Modifier"
        Else
            Me.AllowEdits = True
            Me.AllowAdditions = True
            Me.AllowDeletions = True
            modif.Caption = "Enregistrer"
        End If
    End Sub

  6. #6
    Membre du Club
    Homme Profil pro
    statisticien
    Inscrit en
    Juin 2017
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2017
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    L'idée du bouton à bascule est très bien et le recordsettype fonctionne à merveille je garde donc celle la =).

    Merci également pour l'idée d'utiliser le caption du bouton pour la clause if. Je n'y avait jamais pensé et ça m'évitera de créer une variable inutilement la prochaine fois. Mais avec ta méthode la propriété allowedits ne fonctionne pas sur mon access (je ne sais pas pourquoi) les lignes de codes s'exécute pourtant mais il autorise toujours les modifs.

    Merci pour votre aide et votre temps.

    Cordialement,
    y_vidal

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 842
    Points : 14 946
    Points
    14 946
    Par défaut
    bonjour,
    Merci également pour l'idée d'utiliser le caption du bouton pour la clause if. Je n'y avait jamais pensé et ça m'évitera de créer une variable inutilement la prochaine fois. Mais avec ta méthode la propriété allowedits ne fonctionne pas sur mon access (je ne sais pas pourquoi) les lignes de codes s'exécute pourtant mais il autorise toujours les modifs.
    à mon sens, ton code sur l'évènement Current du formulaire en est la cause et il manque peut-être un Docmd.SaveRecord de l'enregistrement en-cours sur l'évènement modif_Click car cela peut empêcher le changement de mode.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bouton activé/désactivé pour android façon iphone
    Par zarktoune dans le forum Composants graphiques
    Réponses: 8
    Dernier message: 04/08/2011, 14h15
  2. [XL-2003] Activer/Dsactiver un bouton suivant valaur d'un TextBos dans un formulaire.
    Par jeff1494 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/10/2010, 21h39
  3. Réponses: 2
    Dernier message: 01/03/2009, 20h48
  4. bouton activé / désactivé
    Par mouaa dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/08/2007, 16h06
  5. Activer/Désactiver un formulaire
    Par marie10 dans le forum Access
    Réponses: 7
    Dernier message: 01/03/2006, 19h21

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