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 :

Chercher des champs selon une liste déroulante [AC-2003]


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut Chercher des champs selon une liste déroulante
    Bonjour à tous!

    J'ai une table T_Lien qui me sert à établir des responsabilité d'armoire pour des opérateurs.
    Dans mon formulaire d'impression je lance avec un bouton un état qui sort la liste des outils de l'opérateur (pour faire ceci je passe par une requête qui est source de mon état)
    J'arrive dans ma requête source à mettre comme critères le contenu de la liste déroulante, problème:

    Il faudrait que je puisse rajouter les armoires assignées dans la table T_Lien dans l'apperçu/impression, soit de rajouter ceci en OR dans la requête source. Seulement je ne parviens pas à recueillir mes enregistrements dans la table T_Liens.

    (pour info je débute et ma base n'est pas optimisée donc je bidouille, ma table est composée d'un champ contenant toutes les armoires disponible, avec simplement à coté l'opérateur qui doit en être responsable, un opérateur par armoire, mais plusieurs armoires sont possibles pour un seul opérateur.)

    J'ai déjà essayé de mettre des zones de textes qui après maj font un Dlookup dans ma table pour afficher les armoires qui vont être imprimées,
    puis de récupèrer les valeurs de ces zones pour la requête, ma limite est que le Dlookup est mono cible et que je ne peux récupèrer qu'une seule armoire. L'utilisation d'un DAO est-il necessaire? Pour trouver les enregistrements les stocker dans des variables globales puis les utiliser?

    La moindre piste serait la bienvenue, merci et surtout bonne journée,

    PierrotMfff

  2. #2
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour PierrotMfff,

    Si je comprend bien ce que tu dis, un opérateur possède plusieurs armoires. Une armoire possède plusieurs outils.

    Tu peux créer un état qui va afficher la liste des armoires pour un opérateur, puis un sous-état qui va afficher la liste des outils pour cette armoire et le tour est joué

    Une autre technique serait de tout afficher et de grouper dans ton état.

    Bonne journée

  3. #3
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut re
    Merci Robert1957,

    Je n'ai qu'un état qui fonctionne bien sans sous état, je veux dire que la liste d'outils des opérateurs filtrés puis celles des armoires filtrées s'affichent par la suite, le problème c'est de dire dans ma requête "je veux qu'on affiche aussi toutes les armoires qui sont sous la responsabilité de l'opérateur" les listes d'outils se mettent automatiquement (c'est quand même bien fait )
    Et pour ça il faut que je trouve les armoires dans la table T_Lien ce pour dire à access de les afficher aussi

  4. #4
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    Euh oui précision j'ai effectivement choisi de tout regrouper:

    Opérateur:
    Outil 1
    Outil 2

    Amoire 1:
    Outil 1
    Outil 2

    Armoire 2:

    .....

    tout dans le même état!

  5. #5
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour PierrotMfff,

    Est-ce qu'un opérateur peut avoir des outils qui ne sont pas lié à une armoire? Parce que selon ce que tu décris en haut ça pourrait être le cas.

    Ou est-ce que tu veux afficher la liste de tous les outils appartenant à un opérateur, puis la liste des armoires de cet opérateur avec les outils de cette armoire.
    Opérateur 1
    Outil 1
    Outil 2
    Outil 3
    Outil 4
    Armoire 1 de l'opérateur 1
    Outil 1
    Outil 2
    Armoire 2 de l'opérateur 1
    Outil 3
    Outil 4

    Donc répéter la liste d'outil 2 fois?

  6. #6
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    Merci,

    Non un outil est assigné à un opérateur OU à une armoire! Donc un opérateur ou une armoire a aussi sa liste d'outils propre, et un outil ne peut pas être dans les deux

  7. #7
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour PierrotMfff,

    Ok, je crois que c'est le cas d'une requête Union. Tu base ton état sur une requête Opérateur vs Outils et une requête Armoire vs Outils. Dans ton état tu regroupes sur Opérateur/Armoire.

    Bonne journée

  8. #8
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut plop
    Bonjour,

    Pour ceux qui ont le même type de problème j'ai trouvé une solution très bricolée mais qui marche, ici je n'ai pas plus de 4 armoire pour un opérateur dans mon cahier des charges, donc ça marche, cependant pour un nombre très grand d'assignation par tête il faut trouver une autre méthode!
    Pour ce qui est du code que j'ai trouvé, des zones de textes sont necessaires... J'en avait besoin de max 4 que j'ai créé dans mon formulaire:

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub Modifiable27_AfterUpdate()
       'On néttoie tout
    Me.Texte52 = Nothing
    Me.Texte54 = Nothing
    Me.Texte56 = Nothing
    Me.Texte58 = Nothing
       'Cocher 25 est une option => Afficher les armoires? donc si décoché les zones texte restent vides
    If Cocher25 = -1 Then
              'Ouverture de recordset pour selectionner les enregistrements de T_Liens où le responsable est celui de la liste déroulante
           Set rst = CurrentDb.OpenRecordset("SELECT * From T_liens WHERE Responsable ='" & [Modifiable27] & "'", dbOpenDynaset)
              'Si pas de liens alors on s'arrête là
           If Not rst.EOF Then
              'On va sur le premier enregistrement du regroupement de 4 liens max je le rappelle
           rst.MoveFirst
           End If
           If Not rst.EOF Then
              'On stocke la 1ere armoire assignée dans une des zones de texte
           Me.Texte52 = rst.Fields("Armoire").Value
              'On passe à l'enregistrement suivant
           rst.MoveNext
           End If
              'Recommencer autant de fois que l'on doit le faire
              'Remarque: grace au test rst.EOF si il n'y a plus d'enregistrements correspondants, on ne rentre plus dans les If (plus besoin d'ailleurs)
           If Not rst.EOF Then
           Me.Texte54 = rst.Fields("Armoire").Value
           rst.MoveNext
           End If
           If Not rst.EOF Then
           Me.Texte56 = rst.Fields("Armoire").Value
           rst.MoveNext
           End If
           If Not rst.EOF Then
           Me.Texte58 = rst.Fields("Armoire").Value
           rst.MoveNext
           End If
              'On ferme le recordset
           rst.Close
    End If
    End Sub
    Voilà, ensuite, il faut mettre en source de l'état une requête qui affiche les outils qui appartiennent à l'opérateur et les outils de ses armoires,
    donc le champ AppatientA de cette requête aura comme critères:
    [Formulaires]![F_GestionDesOutils]![Modifiable27] (l'opérateur)
    Ou [Formulaires]![F_GestionDesOutils]![Texte58]
    Ou [Formulaires]![F_GestionDesOutils]![Texte52]
    Ou [Formulaires]![F_GestionDesOutils]![Texte54]
    Ou [Formulaires]![F_GestionDesOutils]![Texte56] (puis les armoires)
    (F_GestionDesOutils étant le formulaire dans lequel se trouve la liste déroulante et les zones de textes concernés)

    Si vous testez ça vous verrez que dans l'évènement sur click de la case Cocher25 il faudra le même type de code pour que les infos se mettent à jour directement sur cochage/décochage

    Voilà j'espère que ça pourra aider certaines personnes qui sont comme moi en perpétuelle galère sur access, Merci Robert1957 pour ton aide sur le sujet!
    Pour aller plus loin sur les recordset checkez ça c'est une mine d'informations très précises et pratiques: http://warin.developpez.com/access/dao/

    Salut à tous et bonne journée

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

Discussions similaires

  1. [AC-2007] Remplir un champ à partir des informations d'une liste déroulant
    Par titsoun83 dans le forum IHM
    Réponses: 12
    Dernier message: 31/03/2015, 15h26
  2. Réponses: 1
    Dernier message: 09/12/2014, 13h57
  3. [MySQL] comment insérer des données d'une liste déroulante dans un champ texte
    Par berti dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/01/2008, 09h12
  4. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09

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