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

Access Discussion :

Remplacer doublons lignes par zone de liste


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 20
    Points
    20
    Par défaut Remplacer doublons lignes par zone de liste
    Bonjour,

    J'ai 2 tables (pour faire simple, on va dire "client" et "commande")
    J'ai fait une requête qui lie ces 2 tables
    J'ai fait un formulaire qui affiche cette requête

    Le problème, c'est qu'un client peut faire plusieurs commandes.

    Pour l'instant, pour un client "toto" qui a passé 3 commandes, mon formulaire affiche:

    Nom_client ; Réf_cmd
    toto ; 5
    toto ; 12
    toto ; 25

    Moi, je voudrais qu'il n'y ait qu'une seule ligne par nom de client, et que toutes ces références de commandes apparaissent dans une zone de liste (au lieu de la zone de texte)

    Ce qui donnerait:

    Nom_client ; Réf_cmd
    toto ; 5
    12
    25

    Merci d'avance

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 64
    Points : 48
    Points
    48
    Par défaut
    Tu peux remplir une zone de liste par une requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Définit le type
    Me.NomListe.RowSourceType = "Table/Query"
    'Remplit la liste
    Me.NomListe.RowSource = " ici tu met ta requete sql"
    Avec une requete finissant par un GROUP BY commande HAVING Nom
    tu peux peut etre trouver ton bonheur...fait des testes.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    En essayant plusieurs méthodes, je commence à me demander si c'est possible d'avoir des valeurs différentes selon la ligne ou se trouve la zone de liste, car en mode création il n'y en a qu'une (qui apparait ensuite le nombre de fois qu'il y a de lignes)

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par WyLLoU
    Tu peux remplir une zone de liste par une requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Définit le type
    Me.NomListe.RowSourceType = "Table/Query"
    'Remplit la liste
    Me.NomListe.RowSource = " ici tu met ta requete sql"
    Avec une requete finissant par un GROUP BY commande HAVING Nom
    tu peux peut etre trouver ton bonheur...fait des testes.
    Il faut mettre ce code dans le BeforeUpdate dela liste?
    parce que j'ai essayé de le mettre là mais les valeurs n'apparaissent ensuite que lorsque je clique une fois dessus.

    J'ai essayé de mettre une condition WHERE mais sans succès
    Et je ne vois pas du tout comment faire avec un GROUP BY

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    Voici ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Liste57.RowSourceType = "Table/Query"
    Me.Liste57.RowSource = "SELECT [Ref_cmd] FROM Commande Requête WHERE [Nom_client] = '" & Me.[Nom_client] & "'"

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    En mettant Ref_cmd comme "Source controle" dans les propriétés de ma liste
    Et en mettant ce code SQL dans "Contenu"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [Ref_cmd] FROM [Client Requête];
    Ma zone de liste séléctionne automatiquement la Ref_cmd qui correspond à sa ligne du formulaire.

    Il faudrait donc maintenant que je puisse cacher les autres éléments de la liste.
    Est-ce possible?

    Et également regrouper les Ref_cmd qui correspondent à un même Nom_client dans la même zone de liste, peut-être avec une sélection multiple.

    Qu'en pensez-vous?
    Merci

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/12/2009, 13h27
  2. [Batch] Remplacer une ligne par une autre dans un fichier txt
    Par tinwul dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 03/07/2009, 13h58
  3. Activer une ligne de zone de liste selon un critère
    Par dut-dut dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/07/2008, 14h11
  4. Suppression de lignes dans zone de liste
    Par MAMANHOU dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/07/2008, 13h17
  5. Réponses: 9
    Dernier message: 22/05/2006, 12h21

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