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 :

Rendre un bouton visible selon la valeur dans un champs [AC-2003]


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 9
    Points
    9
    Par défaut Rendre un bouton visible selon la valeur dans un champs
    Bonjour,

    J'ai 4 boutons qui lancent 4 états. Ces 4 états sont fonctions de ce qu'est saisie dans 2 champs du sous-formulaire.

    illustration: si champs sens="achat" et champ type ="B" c'est l'état 1 qui se lance.

    Ce que je veux c'est de rendre visibles les boutons selon les infos saisies dans ces 2 champs. Puisque si par exemple sens=vente, l'état ne sera pas rempli par de données, puisque ces états ont comme source une requête.

    Donc en général il y aaur 4 boutons dont 2, dans certains cas, ne seriviront à rien (pas d'infs).

  2. #2
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Pourquoi ne pas avoir qu'un seul bouton et fonction de la valeur de tes champs, tu ouvres tel ou tel état ?

    Cordialement

    Christophe

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    merci pour la réponse.

    Oui c'est mieux!
    Je sais pas si ça complique les choses. En fait, parfois ce bouton doit ouvrir 2 états simultanément et parfois qu'un seul. Car dans le sous-formulaie, pevent être saisi 1 à 2 produits... Donc si c'est possible tant mieux.

    j'ai essayé de mettre ça dans "après MAJ" du formualire principal , mais ça marche pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Forms![pack]![subpack].Form![sensID] = "achat" Then
    Me.bouton1.Visible = True
    Else
    Me.bouton1.Visible = False
    End If

  4. #4
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonsoir,

    A mon sens, tu te prends la tête avec ton visible et non visible.

    Sur le click de ton bouton, tu pourrais avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub MonBouton_OnClick()
    If Me.Sens="blablabla" Then
    DoCmd.OpenReport "Etat1"
    Else If Me.Sens="bliblibli" Then
    DoCmd.OpenReport "Etat2"
    ...
    Else
    'Message si aucune condition ne correspond aux critéres pour ouvir un état
    MsgBox "Veuillez saisir les bonnes informations avant d'ouvrir un état."
    End If
    End Sub
    Cordialement

    Christophe

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    Aiie, j'ai encore oublié d'affcher le code comme il le faut.

    Merci,en effet, pas besoin de visible/invisible s'il y a un bouton.

    je vais adapter cela...

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    je l'ai fait mais rien ne se passe!
    voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub bouton_Click()
    If Me![subpack].Form![sensID] = "achat" And Me![subpack].Form![typeID] = "A" Then
    DoCmd.OpenReport "état achat_A"
    ElseIf Me![subpack].Form![sensID] = "achat" And Me![subpack].Form![typeID] = "B" Then
    DoCmd.OpenReport "état achat_B"
    ElseIf Me![subpack].Form![sensID] = "vente" And Me![subpack].Form![typeID] = "A" Then
    DoCmd.OpenReport "état vente_A"
    ElseIf Me![subpack].Form![sensID] = "vente" And Me![subpack].Form![typeID] = "B" Then
    DoCmd.OpenReport "état vente_B"
    End If
    End Sub

  7. #7
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonsoir,

    Pour vérifier que tes valeurs sont bonnes, essaies ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub bouton_Click()
    If Me![subpack].Form![sensID] = "achat" And Me![subpack].Form![typeID] = "A" Then
    MsgBox "état achat_A"
    ElseIf Me![subpack].Form![sensID] = "achat" And Me![subpack].Form![typeID] = "B" Then
    MsgBox "état achat_B"
    ElseIf Me![subpack].Form![sensID] = "vente" And Me![subpack].Form![typeID] = "A" Then
    MsgBox "état vente_A"
    ElseIf Me![subpack].Form![sensID] = "vente" And Me![subpack].Form![typeID] = "B" Then
    MsgBox "état vente_B"
    Else
    MsgBox "Aucune valeur correcte"
    End If
    End Sub
    Cordialement

    Christophe

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    En effet, valeur incorrecte.
    Je suis certain que les valeurs sont bonnes. Mais, c'est mon sous-fomulaire qu'est bizzare. J'ai créé mon formulaire via l'assitant, qu'a automatiquement généré le sous-form., le problème est que ce formulaire, en mode création est toalement blanc, avec en haut à gauche marqué table.nomdematable

    Alors que généralement les sous-formulaires en mode création s'affichent différement, je me trompe?

  9. #9
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Ah, on commence à toucher le problème.

    Si ton sous-formulaire apparaît tout blanc, c'est certainement que tu l'a renommé.
    Donc, tu sélectionnes ton sous-formulaire, tu vas dans les propriétés et dans Données/Objet source tu vérifies si le nom du formulaire est bien le même que celui que tu penses.

    Après, dis moi ce qui ce passe et on avisera.

    Cordialement

    Christophe

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    Non je n'ai pas renommé. J'ai créé le formulaire automaiquement. Je me suis placé sur la table principale et le formualire avec le sous-formualre s'est créé automatiquemnt, via création et formulaire. (je travail sur acess 2010, mais le projet doit se faire sur 2003)

    Oui, le nom dans source objet est différent, il est de type: Table.nomtable alors que dans l'onglet autre puis nom, j'ai autre chose.


    PS: en fait, le sous-formualire apparait en blanc qu'en mode création

  11. #11
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonsoir,

    Tu ne devrais pas avoir Table.nomtable comme objet source.
    Ce doit être le nom de ton sous-formulaire.

    Quant à la propriété Nom dans Autre, il peut être différent mais c'est à ce nom là que tu fais référence lorsque tu veux désigner un sous-formulaire.

    Donc, corriges la source (Objet source) de ton sous-formulaire et on voit la suite ensemble.

    Cordialement

    Christophe

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    Alors j'ai corrigé/changé le nom et j'obtiens un message d'erreur comme quoi ce formulaire n'existe pas. En plus, le sous-formulaire disparait du formulaire principal.

    Est-il possible que ce ne soit pas un sous-formulaire mais autre chose qui se rapproche d'un sous-formulaire. Par exemple, je n'ai pas l'option qui permet d'enlever les flèches de navigation d'enregistrements du sous-formulaire.

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    Je viens de trouver la réponse grâce à cette phrase : "Tu ne devrais pas avoir Table.nomtable comme objet source.
    Ce doit être le nom de ton sous-formulaire."


    J'ai eu un déclic:
    Cela ne venait pas du sous-formulaire mais des champs qui constituent le sous-formulaire. En fait, les champs que j'utilise pour les critères venaient d'une "table recherche". Donc au lieu de mettre par exemple achat j'ai mis 1, puisque le chiffre 1 faisait référence à "achat" dans la table. Et ça marche.


    Merci pour ton aide!!!!

    oups, parcontre il m'imprime qu'un seul état, alors que certains enregistrements nécessitent 2. Je croix la fonctionif n'est pas bien adaptée...

    J'ai besoin qu'une fois la première condition remplie, les autres soient vérifiées également. Est-ce qu'il faut la fonction Do While ?

  14. #14
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonsoir,

    Cela me semble normal de n'avoir qu'un seul état puisque tu appèles un état particulier en fonction de certaines valeurs qui sont dans certains champs.

    Maintenant, si tu souhaites ouvrir tous tes états, il te faut alors revoir ton code.
    Je ne sais pas ce que tu souhaites faire en sortie.

    Réfléchis à cette dernière phase et tu devrais atteindre ton but.
    Auquel cas, n'hésites pas à continuer ce post, j'essaierais de t'aider.

    Cordialement

    Christophe

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    En fait, dans le sous formulaire peuvent être saisi au maximum 2 lignes et minimum 1 ligne.

    Ce qui veut dire que si l'utilisateur saisi une ligne, il y a ouverture d'un état. Mais s'il y a 2 lignes, il y a forcément 2 états qui doivent s'ouvrir. Or ce que fait cette fonction c'est qu'une fois la première condition est vérfiée, elle ouvre l'état et ne vérifie pas les autres.

    je ne veux pas ouvrir tous les états sauf ceux qui répondent aux critères définis par ce qu'est saisi dans le sous-formulaire.

    Explication: imaginez il y 2 produits (A et B) et 2 types de transaction possibles pour chaque produits (achat /vente). Donc j'ai 4 états (achat A, achat B, vente A, vente B).

    Si j'ai dans le sous-form. record1-> sens: achat type:A, il fat que le bouton ouvre que l'état "achat A" et non les autres.

    Mais si j'ai dans le sous-form: record1-> sens: achat type:A
    record2-> sens:vente type: B

    Je veux que le bouton ouvre l'état "achat A" et l'état "vente B" et pas les autres.

    je sais pas comment faire pour modifier la fonction IF de telle sorte qu'elle vérfie toutes les conditions.

    merci

  16. #16
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonsoir,

    A ce moment là, lorsque tu clique sur ton bouton, il te faut boucler sur les enregistrements de ton sous-formulaire et fonction de ce tu trouves, tu ouvres les formulaires adéquates.

    Cordialement

    Christophe

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    Je ne comprends pas ce que tu veux dire.

    Je vais faire les 4 boutons avec visible et invisible, c'est plus simple je pense.

  18. #18
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonsoir,

    A toi de voir ce qui te convient le mieux.

    Cela dit, si cette discussion te convient dans l'aboutissement de ta question initiale, n'oublie pas de cocher la case "Résolu" afin que cela profite à tout le monde.

    Cordialement

    Christophe

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    oui, merci pour votre aide!

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/12/2014, 10h30
  2. Rendre inactive une combobox selon la valeur choisie dans une 1er combobox
    Par The Molo dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/12/2007, 13h34
  3. Boutons radio et transmission de leur valeur dans un champ texte
    Par Corinne dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 31/07/2007, 09h56
  4. rendre un bouton visible garce a un inputtext
    Par krikete13 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/06/2007, 13h41
  5. [Joomla!] comment rendre un menu visible mais non cliquable dans joomla
    Par tcone dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 08/02/2007, 23h25

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