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 :

Etat à partir des éléments selectionnés d'une liste [AC-2003]


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 45
    Points : 36
    Points
    36
    Par défaut Etat à partir des éléments selectionnés d'une liste
    Bonjour,

    Je dispose d'une liste remplie par une requête, l'objectif est que l'utilisateur puisse sélectionner les lignes de son choix pour les imprimer dans un état.

    Selon l'aide "Le paramètre affecté à la propriété Source (RecordSource) peut être un nom de table, un nom de requête ou une instruction SQL"

    Y'a t'il moyen de le faire sans créer une table temporaire ?

  2. #2
    Membre expérimenté Avatar de stigma
    Homme Profil pro
    Créateur jeux vidéo
    Inscrit en
    Octobre 2003
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Créateur jeux vidéo
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 113
    Points : 1 612
    Points
    1 612
    Par défaut
    Une solution parmi d'autres :
    L'utilisateur sélectionne les enregistrements à la souris (ajouter un champ Oui/Non) puis créer une table temporaire qui sera remplie avec les enregistrements. Créer une requête puis un état basé sur cette requête. Et zou !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Merci.
    C'est ce que je pensais, mais j'avais espoir qu'on puisse y arriver avec un une structure de données créé de toute pièce.
    Par exemple faire RecordSet.clone de ma liste dans lequel je supprime les enregistrement qui ne sont pas selectionnés et que je balance en entrée de mon état.
    Enfin c'était juste une vague idée, je suis loin de maitriser Access et VBA, je ne connais pas encore bien l'étendue des possibilités... et les limites dans le cas qui nous concerne

  4. #4
    Membre habitué Avatar de jimay
    Profil pro
    Inscrit en
    Août 2006
    Messages
    146
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 146
    Points : 178
    Points
    178
    Par défaut
    Salut

    Une deuxième solution est de parcourir dans ta liste tous les champs sélectionnés, et de créer une requête à partir de ça

    En Algo ça ferait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each numLigne In Me.Liste.ItemsSelected
        requete = "ID = " & Me.Liste.ItemData(numLigne) & " OR "
    Next
     
    Call DoCmd.OpenReport("Report", , , requete)
    voilou

  5. #5
    Membre expérimenté Avatar de stigma
    Homme Profil pro
    Créateur jeux vidéo
    Inscrit en
    Octobre 2003
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Créateur jeux vidéo
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 113
    Points : 1 612
    Points
    1 612
    Par défaut
    C'est comme en programmation, une multitude de solution différentes aboutissement à un même résultat. Personnellement je suis adepte du tout VBA.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Merci à vous pour vos réponses.

    >jimay, ta solution semble me convenir mais il y a un petit truc que je ne comprends pas, à moins que ça ne soit un oubli, ton string requete ne contiendra après la boucle que le dernier élément de la liste. Ou alors la concaténation est implicite en VBA ?
    Et sur la forme de la requête, si mon état se fait sur la table "Test", et que je passe un truc du genre "idTest=5 OR idTest=6" ça filtrera automatiquement sur ces tuples ? Ou dois-je plutôt faire un truc du genre "SELECT * FROM Test WHERE idTest=5 OR idTest=6" ?

  7. #7
    Membre habitué Avatar de jimay
    Profil pro
    Inscrit en
    Août 2006
    Messages
    146
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 146
    Points : 178
    Points
    178
    Par défaut
    Salut,

    Tu as raison j'avais oublié la concaténation, il faut bien rajouter le petit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Requete = Requete & "... xxx"
    Pour la 2ieme partie par contre c'est normal, il faut juste mettre ce qui suivrait le "WHERE"


    a+


    PS: je viens de voir que mon code ne fonctionnerais pas encore à cause du dernier "OR" qu'il y aura à la fin de la chaine et qu'il faudra donc enlever

  8. #8
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Ok, j'ai réussis à implémenter ta solution, merci encore

    Voici le bout de code en question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        Dim idDossier As String
        Dim param As String
        param = ""
     
        For Each varItm In Me.ListeDossier.ItemsSelected
             idDossier = Me.ListeDossier.ItemData(varItm)
            param = param & " idDossier=" & idDossier & " OR "
        Next varItm
     
        param= Left(param, Len(param) - 4)
        DoCmd.OpenReport "monEtat", acPreview, , param
    A noter que "monEtat" est un état basé sur une requête qui par défaut selectionne tous les dossiers.

  9. #9
    Membre habitué Avatar de jimay
    Profil pro
    Inscrit en
    Août 2006
    Messages
    146
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 146
    Points : 178
    Points
    178
    Par défaut
    Content d'avoir pû t'aider

    ++

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 20/09/2019, 22h36
  2. Réponses: 20
    Dernier message: 27/07/2010, 15h52
  3. Récupération des éléments sélectionner dans une liste
    Par Jasmine80 dans le forum Interfaces Graphiques
    Réponses: 13
    Dernier message: 17/09/2009, 12h52
  4. [script.aculo.us] [Tutoriel] Modifier l'opacité des éléments sélectionnés d'une liste avec Script.aculo.us
    Par Kerod dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 13/01/2009, 21h31

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