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 :

Faire apparaitre/disparaitre des éléments du formulaire en fonction d'un champ texte de sous-formulaire [AC-2010]


Sujet :

IHM

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 73
    Points : 53
    Points
    53
    Par défaut Faire apparaitre/disparaitre des éléments du formulaire en fonction d'un champ texte de sous-formulaire
    Salut,

    J'ai mon formulaire principal "Dossier" et un sous formulaire "Sous formulaire dossier 1". Dans mon sous formulaire, il y a un champ texte qui se rempli automatiquement en fonction d'un menu déroulant du même sous formulaire. J'ai fait en sorte qu'il ne puisse prendre que 12 valeurs pré-rentrées, et je voudrais que pour une de ces valeurs, qu'on appellera "valeur 12", certains éléments du formulaire apparaissent et d'autre disparaissent.

    Je pensais rentrer un code évènement "sur changement" du champ texte du sous formulaire (qui s’appelle Texte16), mais je ne sais pas trop quel code rentrer...En fait je ne sais pas comment identifier l'élément, quelle adresse rentrer...j'avais pensé a ça mais ça a pas l'air de marcher:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Texte16= "valeur12" Then
    Me.Element1.Visible=True
    Me.Element2.Visible=False
    .
    .
    .

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Boujour,

    Me. fait ici référence au sous-formulaire. Pour adresser le formulaire lui même, plusieurs solutions, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Me.Parent.
    Forms("Dossier").
    Form_dossier.

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 73
    Points : 53
    Points
    53
    Par défaut
    Merci,

    j'ai donc rentré ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Texte16_Change()
    If Texte16 = "VALEUR12" Then
    Me.Parent.Etiquette146.Visible = True
    Me.Parent.Subvention_CG83.Visible = True
    End If
    If Texte16 <> "VALEUR12" Then
    Me.Parent.Etiquette146.Visible = False
    Me.Parent.Subvention_CG83.Visible = False
    End If
    End Sub
    Malheureusement ca n'a pas l'air de fonctionner. Je vais peut etre donner plus d'infos sur mon formulaire.

    Au départ, lors de la saisie d'une nouvel enregistrement, on selectionne un propriétaire parmi une menu deroulant reprenant ceux d'une table PROPRIETAIRE, ensuite dans le sous formulaire, un menu déroulant nous propose de choisir parmi les immeubles de ce propriétaire (l'attribution propriétaires/immeubles est faite préalablement). Une fois l'immeuble selectionné, un champ texte affichera la commune dans laquelle se situe l'immeuble, c'est le champ "Texte16". Je souhaite que lorsque ce champ prend une valeur bien précise ("VALEUR12" par exemple), des champs apparaissent et disparaissent dans mon formulaire principal.

    Le formulaire dispose aussi d'un menu déroulant permettant de choisir et consulter les enregistrements déjà existant(il s'agit de dossiers, chacun lié à un immeuble), lors de la selection d'un enregistrement, il faut que si la commune de l'immeuble correspond à "VAEUR12", le formulaire n'affichent que les éléments nécessaires.

    Je pense que les code devront donc être entrés "sur changement" de "Texte16" et "sur changement" du menu déroulant ("Modifiable74"). Je me trompe peut etre...

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Citation Envoyé par tomatotep Voir le message
    "Texte16" et "Modifiable74"
    c'est pas top pour la maintenance

    A priori je mettrais le code sur modifiable74_afterupdate en testant texte16

    Et sinon ELSE ça marche bien aussi

    Mais en fait une sous-fenêtre n'a d'intérêt que si elle affiche une sous-liste, sinon des champs supplémentaires dans la fenêtre principale marchent aussi bien (mieux).

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 73
    Points : 53
    Points
    53
    Par défaut
    Oui j'ai laissé les intitulés par défaut, jusqu’à présent je m'en sort comme ça. Sinon mon sous formulaire "écrit" ou se réfère à une autre table que celle du formulaire principal, avec des champ pères et champ fils pour faire des attribution dossier-immeuble, etc etc

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 73
    Points : 53
    Points
    53
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Modifiable74_Change()
    If Form.Sous_Formulaire_Travaux_Immeuble.Texte16 = "SAINT-ZACHARIE" Then
    Me.Étiquette146.Visible = True
    Me.Subvention_CG83.Visible = True
    Else
    Me.Étiquette146.Visible = False
    Me.Subvention_CG83.Visible = False
    End If
    End Sub
    Voila mon code exact pour "sur changement" du menu déroulant (modifiable74), quand je teste le fonctionnement du formulaire: message d'erreur>débogage: il me surligne la premiere ligne en jaune.Un probleme dans l'adresse de "Texte16"???

  7. #7
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Un formulaire peut s'appuyer sur plusieurs tables (ou aucune d'ailleurs), par exemple sur une requête de type "dossier inner join immeubles"

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 73
    Points : 53
    Points
    53
    Par défaut
    Oui, mais le fait que j'ai utilisé ce sous formulaire m'empechera-t-il de pouvoir arriver à avoir ce que je souhaite? ou c'est juste que ca aurait peut etre simplifié...Ma base de donnée, formulaires, etats requetes, etait censée etre finie mais mon "commanditaire" (je suis en stage^^) m'a demandé tout recemment de rajouter encore des trucs...dont ce que je souhaite faire "via" ce post...

  9. #9
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Form.Sous_Formulaire_Travaux_Immeuble
    n'existe pas, c'est ou
    Me. (la form courante, par défaut), ou Sous_Formulaire_Travaux_Immeuble.

    Normalement Access ne propose automatiquement que ce qui existe !

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 73
    Points : 53
    Points
    53
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.Sous_Formulaire_Travaux_Immeuble.Texte16.Value = "SAINT-ZACHARIE" Then
    J'ai utilisé ca mais la il me surligne ".Texte16" dans la première ligne, pourtant c'est bien le nom de la zone de texte, et son code source est [code_immeuble].[column](2) (Texte16 n'est pas proposé automatiquement lorsque je tape le code)

    si je remplace "Texte16" par "[code_immeuble].[column](2)", il me surligne a nouveau toute la ligne...je comprends pas pourquoi il ne "reconnait pas" Texte16...

  11. #11
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Si texte16 est dans le formulaire tartempion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If forms("tartempion").Texte16 = "SAINT-ZACHARIE" Then
    si ce code est dans le formulaire tartempion aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Texte16 = "SAINT-ZACHARIE" Then
    ou 
    If me.Texte16.value = "SAINT-ZACHARIE" Then

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 73
    Points : 53
    Points
    53
    Par défaut
    Bon, merci beaucoup, j'ai beau essayer les différentes syntaxes, j'ai le message d'erreur "2450" qui me dit que mon sous formulaire est introuvable, pourtant, dans le même code évènement j'utilise ce sous formulaires et aucun problème. Je ne comprends vraiment pas...

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 73
    Points : 53
    Points
    53
    Par défaut
    En fait quand je tape If Me.Sous_formulaire_Travaux_Immeuble. Il ne propose pas Texte 16, ni aucun éléments du sous formulaire, pourtant après avoir tapé Me. il propose le sous formulaire...

  14. #14
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Modifiable74 est dans quel formulaire ? le père ou le fils (ou le saint esprit ) ?

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 73
    Points : 53
    Points
    53
    Par défaut
    modifiable74 est dans le pere, en fait seul Texte16 est dans le sous formulaire fils.


  16. #16
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Quand une fenêtre est placée en sous-fenêtre, elle prend un nouveau nom "local", par défaut fille1

    Normalement cette syntaxe marche aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if me.fille1!texte16 = ...

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 73
    Points : 53
    Points
    53
    Par défaut
    Ca n'a pas marché non plus....Merci quand meme

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 73
    Points : 53
    Points
    53
    Par défaut
    Apres avoir essayé pas mal de syntaxes différentes, cela a fonctionné avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Form![Sous Formulaire Travaux Immeuble]![Texte16].Value = "SAINT-ZACHARIE" Then
    Me.Subvention_CG83.Visible = True
    Fallait pas mettre les "underscore"

    Merci pour l'aide

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/06/2009, 15h30
  2. Réponses: 4
    Dernier message: 20/04/2008, 15h46
  3. Réponses: 2
    Dernier message: 04/12/2007, 16h05
  4. visibilité d'un sous-formulaire en fonction d'un champ
    Par bourguignon21 dans le forum VBA Access
    Réponses: 6
    Dernier message: 13/07/2007, 11h23
  5. Réponses: 7
    Dernier message: 24/07/2006, 15h11

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