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

VBA Access Discussion :

Executer un code en fonction du caption d'un bouton


Sujet :

VBA 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 : 32
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2017
    Messages : 54
    Points : 46
    Points
    46
    Par défaut Executer un code en fonction du caption d'un bouton
    Bonjour à tous,

    J'ai un formulaire Access qui contient plusieurs sous formulaires. Avant de réaliser une MaJ des informations de mon formulaire je souhaiterais vérifier que j'ai validé les informations de mes sous formulaires.
    Pour cela je souhaiterai intégrer au code de mon bouton de MaJ une ligne de code disant que si mon bouton de sous formulaire affiche "Modifier" alors il peut se mettre à jour (cela signifie que mon sous formulaire a été modifié) mais qu'il ne fasse rien si il est noté "Executer).
    Mon code ressemble donc à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub MAJ_Click()
     
    If Forms![sous_formulaire].Form![nom_du_bouton].Caption = "Modifier" Then
        'MaJ
    Else
        'Message d'erreur
    End If
     
    End Sub
    J'ai également essayé la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Forms![sous_formulaire].nom_du_bouton.Caption = "Modifier" Then
    DSL pour cette quesiton qui va surement paraitre évidente pour certain mais moi je suis en galère.

    Merci à tous de votre aide

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Bonjour,

    Pour accéder à un sous formulaire, il faut nommer son formulaire parent et il te manque un 'Form':
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Forms![NomFormulaireParent]![sous_formulaire].Form.nom_du_bouton.Caption = "Modifier" Then
    et cette syntaxe fonctionne aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Forms.NomFormulaireParent.NomSousFormulaire.Form.NomBouton.Caption = "Modifier" Then

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

    Informations professionnelles :
    Activité : statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2017
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Merci pour ta réponse en effet je me sent un peu bête d'avoir oublié de préciser le formulaire parent.
    Cependant je fais désormais face à un autre problème.
    Mon code fonctionne quand le caption est celui qui est après le =, mais pas quand il est différent.
    C'est à dire dans mon exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub MAJ_Click()
    If Forms![FormParent]![SousForm].Form.bouton.Caption = "Modifier" Then
        'Code de mise à jour
    Else
        MsgBox ("Veuillez exécuter les informations saisies avant d'effectuer la mise à jour.")
    End If
     
    End Sub
    Si le caption = "Modifier" alors il n'y a pas de soucis, mais si le caption = "Exécuter" alors mon programme plante avec le message d'erreur suivant :
    erreur d’exécution '2465':
    erreur définie par l'application ou par l'objet
    Auriez vous une idée de pourquoi ?

    Merci par avance du temps que vous me consacrez

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Sur quelle ligne apparaît l'erreur ?

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

    Informations professionnelles :
    Activité : statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2017
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    La seconde,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Forms![FormParent]![SousForm].Form.bouton.Caption = "Modifier" Then
    .
    Quand le .caption <> "Modifier" le programme plante sur cette ligne avec le message d'erreur cité.
    Quand le .caption = "Modifier" le programme défile normalement.

  6. #6
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Je ne vois pas ce qui bloque...
    J'ai fait un test avec un sous-formulaire, le caption qui change et un bouton qui me donne l'action à faire en fonction du texte du bouton... et ça fonctionne.
    Compile ton projet, compacte et répare ta base...
    Je sèche un peu... désolé.

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

    Informations professionnelles :
    Activité : statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2017
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Merci quand même.

    Je n'ai pas trop le temps de me consacrer à l'amélioration des formulaires en ce moment mais si je trouve une solution ultérieurement je la posterais en réponse.

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/05/2014, 10h50
  2. Réponses: 21
    Dernier message: 24/03/2009, 09h56
  3. Executer du code binaire au sein d'un programme
    Par Hidekii dans le forum MFC
    Réponses: 13
    Dernier message: 07/09/2005, 22h10
  4. [FLASH MX2004] Rien ne se passe qd j'execute mon code
    Par adilou1981 dans le forum Flash
    Réponses: 2
    Dernier message: 27/07/2005, 23h31
  5. [C#]Comment executer du code qui se trouve dans une string ?
    Par freddyboy dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/02/2005, 16h31

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