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 :

Champs visibles selon valeur d'un autre champ


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 19
    Points : 8
    Points
    8
    Par défaut Champs visibles selon valeur d'un autre champ
    Bonjour,

    Voila le problème que je voudrais résoudre.

    Je mets en place une BDD pour gérer les matériels de ma société.
    Je suis en train de faire un Etat qui affiche les matériels et leurs informations pour une personne donnée. A l'ouverture de l'état on me demande donc l'identifiant de cette personne. Jusque là, tout va bien, ça affiche parfaitement les numéro de série des matériels de la personne.

    Par exemple:

    Machin

    PC - SN 123456
    Ecran - SN 98754

    En effet, actuellement, j'ai une table qui contient des enregistrements du type:

    Machin 123456 PC
    Machin 98754 Ecran

    etc...

    C'est sur cette table que se base mon état, qui ne peut donc afficher directement que le numéro de série.

    J'ai d'autres tables, une par type de matériel, qui contiennent les infos de chaque matériel (par exemple le SN, la marque le modèle, etc...)

    Je voudrais que pour chaque ligne matériel de l'état, les informations du matériel apparaissent.

    Mais là je bloque, je ne vois pas comment faire.

    J'ai pensé rendre visible ou pas certains champs avec un Select Case mais je n'y arrive pas.

    Des idées ?

  2. #2
    Membre régulier
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Mars 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti Ingénieur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2011
    Messages : 86
    Points : 88
    Points
    88
    Par défaut
    salut,

    Je fais comme ça mais avec des formulaires :
    à l'ouverture, procedure evenementielle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Forms![frm1].txtContact4.Value = "ouioui" then
       Me![Etat1].textebox25.Visible = True
    end if
    J'ai mis "Me" parce que je ne connais pas le prefixe de selection des Etats

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Citation Envoyé par theclaw Voir le message
    J'ai d'autres tables, une par type de matériel, qui contiennent les infos de chaque matériel (par exemple le SN, la marque le modèle, etc...)

    Je voudrais que pour chaque ligne matériel de l'état, les informations du matériel apparaissent.
    Bonjour.

    Alors je n'ai peut-être pas tout compris, mais pourquoi ne changes-tu pas la source de ton état par une requête avec jointure(s) ????
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par paidge Voir le message
    Bonjour.

    Alors je n'ai peut-être pas tout compris, mais pourquoi ne changes-tu pas la source de ton état par une requête avec jointure(s) ????
    Hello

    Alors pour être honnête je ne sais pas ce que tu veux dire...

    Actuellement, j'affiche / masque des champs en fonction d'une boite à options.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Une requête avec jointure(s) est basée sur plusieurs tables reliées entre elles. Tu auras de plus amples informations sur ce tuto.

    Principe:
    Prenons une table T_employes (IDemploye, nom, prenom, service)
    Et une table T_materiel (IDmateriel, type, marque, S/N, employe)
    NB : le type sera pour l'exemple Ecran, UC, imprimante, etc.

    Les champs IDemploye et IDmateriel sont ce qu'on appelle des clés primaires et sont UNIQUES pour chaque enregistrement.
    Le champ employe lui est ce qu'on appelle une clé trangère.
    Les 2 tables sont reliées entre elles par une jointure Un-Plusieurs (1 matériel appartient à un employé et un employé peut avoir plusieurs matériel).
    La jointure relie le champ IDemploye de la table T_employes au champ employe de la table T_materiel.

    De cette manière, tu peux avoir, par exemple, la liste du matériel pour un service donné avec une requête du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT type, marque, S/N FROM T_materiel INNER JOIN T_employes ON T_employes.IDemploye=T_materiel.employe WHERE service='Finance';
    Si tu ne connais pas les jointures, je te conseille d'apprendre cette notion, c'est INDISPENSABLE pour récupérer les infos que tu souhaites dans une BDD.
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Je connais les jointures, je ne sais juste pas comment baser mon état sur une requête avec jointure dans ce cas précis.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    ce qu'il faudrait c'est un aperçu de ta modélisation : les tables avec leurs champs et leurs relations.
    Si j'ai bien compris ton problème (j'en doûte encore un peu lol ), une requête correctement conçue répondra à ton besoin.

    EDIT : tu sais aller dans les propriétés de ton état pour y modifier la source ?
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  8. #8
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par paidge Voir le message
    ce qu'il faudrait c'est un aperçu de ta modélisation : les tables avec leurs champs et leurs relations.
    Si j'ai bien compris ton problème (j'en doûte encore un peu lol ), une requête correctement conçue répondra à ton besoin.

    EDIT : tu sais aller dans les propriétés de ton état pour y modifier la source ?
    C'est le soucis, sur un forum c'est un peu limité pour expliquer sa conception

    Oui je sais aller changer la source.

    Pas grave, je finirai par trouver

  9. #9
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Citation Envoyé par theclaw
    C'est le soucis, sur un forum c'est un peu limité pour expliquer sa conception
    ...
    Pas grave, je finirai par trouver
    Si jamais tu n'y arrives pas, un petit screenshot peut faire l'affaire
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  10. #10
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par paidge Voir le message
    Si jamais tu n'y arrives pas, un petit screenshot peut faire l'affaire
    Bon, je vais essayer de résumer

    Je crée une BDD pour gérer les affectations de matériels informatiques pour ma boite.

    En simplifiant (et sans respecter les syntaxes des champs), j'ai:

    Une Table User (ID, Nom, Prénom)
    Une Table Computers (S/N, Marque, Modèle)
    Une Table Screens (S/N, Marque, Modèle)
    Une Table Assign (ID User, ID Matériel, Type Matériel, Date Affectation)

    J'ai d'autres tables mais pour la partie dont j'ai besoin il n'est pas utile de les présenter.

    Pour l'état en question, je me base sur une requête:



    Elle me permet de récupérer tout ce dont je pourrais avoir besoin et demande l'ID Utilisateur à l'exécution.

    Une fois entrée cette ID, j'obtiens parfaitement les matériels de l'utilisateur choisi. Mais je n'obtiens QUE le type de matériel et son numéro de série (puisque c'est ce qui est dans la table ASSIGN). Je n'arrive pas à faire le lien vers les autres infos de chaque matos.

    Pas sur que ça soit plus clair

  11. #11
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour,

    Oui je vois un peu mieux ton problème.
    Quand je t'ai demandé un aperçu de la modélisation de ta BDD, je parlais du schéma qui montre toutes tes tables avec leurs relations. Pas d'une requête (car le mieux pour une requête, à mon avis, c'est quand même son code SQL).
    Car j'ai l'impression que la modélisation de ta BDD serait à revoir....Perso, j'aurai mis tous le matos dans une même table (T_matos) avec un champ ID(numAuto), un champ SerialNumber, un champ modèle relié à une table T_modele(reliée elle-même à une table T_marque et à une table T_type : ecran, carteSIM,imprimante,UC, etc.), etc. Tu n'aurais pas eu tous ces problèmes Menfin c'est que mon avis....

    En attendant,j'ai reproduit chez moi très simplement ta requête et j'obtiens un résultat du type :
    -User1 | Imprimante1 | --Vide-- | --Vide-- |
    -User1 | --Vide-- | Ecran2 | --Vide-- |
    -User1 | --Vide-- | --Vide-- | PC3 |
    -User2 | --Vide-- | Ecran1 | --Vide-- |
    -User2 | --Vide-- | --Vide-- | PC1 |
    -User9 | Imprimante5 | --Vide-- | --Vide-- |

    A priori c'est ce que tu devrais avoir avec ta requête (ceci grâce aux jointures externes que tu as mises en place). En tous cas, ça marche chez moi. Donc je ne vois pas pourquoi tu ne pourrais pas avoir les infos des autres tables. Qu'obtiens-tu comme résultat de ta requête ?

    EDIT : si tu ne veux pas ou ne peux pas toucher à ta modélisation, il y a un tuto qui pourrait peut-être t'intéresser.
    Une autre piste aussi pour n'avoir qu'un seul champ et éviter d'avoir des champs vides(mais question performances sur de grosses tables à mon avis c'est chaud) c'est d'avoir un champ avec une expression du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    matos: VraiFaux(EstNull([T_printers]![modele]);VraiFaux(EstNull([T_UC]![modele]);VraiFaux(EstNull([T_screens]![modele]);"";[T_screens]![modele]);[T_UC]![modele]);[T_printers]![modele])
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  12. #12
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Hello

    C'est effectivement ce que j'ai obtenu 5 minutes après avoir posté le message précédent, sans rien modifier et à ma grande surprise.

    J'avoue ne pas savoir ce que j'ai changé entre le moment où ça ne marchait pas et celui où j'ai posté le message.

    Du coup, Access fait parfaitement ce dont j'ai besoin et je me sens un peu idiot

  13. #13
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Pas de souci ce sont des choses qui arrivent
    Si ton problème est réglé cliques sur
    sinon n'hésites pas si tu as besoin d'aide ^^
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  14. #14
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par paidge Voir le message
    Pas de souci ce sont des choses qui arrivent
    Si ton problème est réglé cliques sur
    sinon n'hésites pas si tu as besoin d'aide ^^
    J'ai une autre question qui n'a rien à voir:

    Dans mes souvenirs d'access (97) on pouvait générer un "exécutable" pour diffuser la bdd à des gens n'ayant pas access. C'est toujours d'actualité en access 2010 ?

  15. #15
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Je n'utilise pas ACCESS 2010 et je n'ai jamais utilisé ce procédé mais je pense que oui. En faisant une recherche sur "Runtime Access 2010", tu devrais avoir des éléments de réponse.
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  16. #16
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par paidge Voir le message
    Je n'utilise pas ACCESS 2010 et je n'ai jamais utilisé ce procédé mais je pense que oui. En faisant une recherche sur "Runtime Access 2010", tu devrais avoir des éléments de réponse.
    Ah voila c'est ça "Runtime".

    Je vais chercher.

    Merci

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/04/2012, 17h03
  2. Réponses: 1
    Dernier message: 06/10/2008, 09h53
  3. Réponses: 4
    Dernier message: 27/03/2008, 23h01
  4. champs reprenant la valeur d'un autre champs
    Par tojiji dans le forum Access
    Réponses: 2
    Dernier message: 31/07/2006, 16h40
  5. Réponses: 7
    Dernier message: 06/01/2006, 10h47

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