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

VBA Access Discussion :

Formulaire avec répétition de lignes


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2024
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Formulaire avec répétition de lignes
    Bonjour
    Je suis novice en vba, mais je ne vois pas comment résoudre ma situation autrement.
    J'ai créé une requête à partir de plusieurs tables liées qui me permet d'afficher des étiquettes personnalisées (mode d'emploi) par client sur les produits qu'ils ont acheté.
    Sur cette étiquette se trouve la date de la vente, le nom et le prénom du client, le nom du produit et son mode d'emploi. Cette étiquette est imprimé et est donné avec le produit.
    Pour l'impression je passe par un état basé sur cette requête.
    Tout va bien, mais parfois un client commande 2 fois le meme produit. La quantité se trouve dans la colonne Det_Qté de la requete.
    J'aimerais que mon état m'imprime 2 étiquettes identiques si 2 produits identiques sont commandés sans pour autant multiplier les écritures dans ma table.
    En effet, je pourrais enregistrer 2 lignes quand je vends 2 fois le meme article, mais ca augmenterait mon temps passé à remplir la table.
    Avez vous des idées de comment faire cela? J'ai fait un peu de vba sur excel et je pense qu'en passant par excel j'arriverais à faire un truc, mais sur access c'est un peu différent.
    Je vous remercie
    Estelle H

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 423
    Points : 20 001
    Points
    20 001
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Vous pouvez dupliquer vos lignes dans une requête sans dupliquer vos enregistrements dans la table :

    Pour cela il faut utiliser une table d'indices qui va permettre de générer dans la requête autant de lignes qu'il y a de qté de produits commandés.

    Je vous joins un petit exemple pour y voir plus clair.

    Ensuite vous remplacez dans votre requête la table contenant les qtés par la requête qui duplique les lignes.

    Cdlt,
    Fichiers attachés Fichiers attachés

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2024
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Merci pour votre réponse. Ca fonctionne c'est parfait. Est il possible de m'expliquer comment ca fonctionne? Comment la requête sait qu'elle doit copier la ligne? Je ne lui ai pas demandé. On a "juste" mis un critère <= à la quantité. C'est quelque chose de pré défini?
    En tout cas, c'est hyper pratique pour moi ! Encore merci.


    Citation Envoyé par User Voir le message
    Bonjour,

    Vous pouvez dupliquer vos lignes dans une requête sans dupliquer vos enregistrements dans la table :

    Pour cela il faut utiliser une table d'indices qui va permettre de générer dans la requête autant de lignes qu'il y a de qté de produits commandés.

    Je vous joins un petit exemple pour y voir plus clair.

    Ensuite vous remplacez dans votre requête la table contenant les qtés par la requête qui duplique les lignes.

    Cdlt,

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 423
    Points : 20 001
    Points
    20 001
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    La requête basée sur les tables T_Commandes_Produits et T_Indices sans la condition sous l'indice réalise le produit cartésien des 2 tables :

    Elle duplique chaque ligne de T_Commandes_Produits autant de fois qu'il y a d'indices.

    Avec la condition sous l'indice on limite le nombre de lignes dupliquées à la qté commandée.

    Cdlt,

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/08/2012, 06h05
  2. [AC-2007] formulaire de saisie avec toutes les lignes pré-remplies
    Par tibofo dans le forum IHM
    Réponses: 2
    Dernier message: 26/07/2010, 12h10
  3. [PHP 4] Sélectionner les lignes d'un formulaire avec une case à cocher
    Par shenmicke dans le forum Langage
    Réponses: 7
    Dernier message: 05/08/2009, 15h56
  4. Réponses: 3
    Dernier message: 16/03/2009, 10h12
  5. Formulaire avec nombre de lignes de saisie variable
    Par NadègeG dans le forum Langage
    Réponses: 9
    Dernier message: 03/10/2006, 09h10

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