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

Requêtes et SQL. Discussion :

Limiter le nombre de lignes


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    je veux apprendre la programmation dans excel
    Inscrit en
    Février 2016
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : je veux apprendre la programmation dans excel

    Informations forums :
    Inscription : Février 2016
    Messages : 336
    Points : 102
    Points
    102
    Par défaut Limiter le nombre de lignes
    Salam, Bonjour

    Comment limiter le nombre de ligne dans un sous formulaire
    selon le contenu d'un champ dans le formulaire

    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    C'est faisable mais pas particulièrement simple.
    Pourquoi as-tu besoin de cela ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre régulier
    Homme Profil pro
    je veux apprendre la programmation dans excel
    Inscrit en
    Février 2016
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : je veux apprendre la programmation dans excel

    Informations forums :
    Inscription : Février 2016
    Messages : 336
    Points : 102
    Points
    102
    Par défaut
    Salam, Bonsoir

    Merci pour la reponse

    limiter les lignes pour des raisons technique de l'application
    Veux tu me montrer commeent faire
    Merci encore une fois

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    En fait savoir pourquoi tu veux le faire et comment est montée ta BD conditionne la réponse.

    1. Une méthode polyvalente mais pas forcément la mieux adaptée consiste à créer à priori le nombre de ligne voulues (ex : 10 lignes) puis d'interdire à l'utilisateur d'en ajouter ou d'en enlever.
    2. Une autre est de compter le nombre de lignes et d'interdire à l'utilisateur d'en ajouter quand il a atteint un certain nombre (ex : 25 lignes).
    3. Encore une autre est de s'assurer que Access refuse d'ajouter plus de lignes en contrôlant cela via les données.
      Ex : Tu vends seulement 10 produits différents, et tu n'autorises qu'un seul produit par ligne.
      Dés que l'utilisateur voudra ajouter un 11ième produit, Access va refuser car cela va créer un doublon.


    Donc as-tu besoin de :
    • 1 nombre fixe de lignes connu en amont ?
    • 1 nombre maximum de lignes ?
    • Peux-tu contrôler ce nombre par les données sélectionnées ?


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre régulier
    Homme Profil pro
    je veux apprendre la programmation dans excel
    Inscrit en
    Février 2016
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : je veux apprendre la programmation dans excel

    Informations forums :
    Inscription : Février 2016
    Messages : 336
    Points : 102
    Points
    102
    Par défaut
    Salam, Bonjour

    Execuse moi pour le retard

    Ce que je veut les trois proposition si posibble bien sur
    pour voir et connaitre la difference entre eux
    parce que moi ce qui m'interesse c'est connaitre et apprendre access
    c'est pour ca je vous demande les trois proposition

    Merci bien

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    OK.

    Note que ces méthodes peuvent être combinées.

    Je vais commencer par la création à priori.
    Il faut que tu définisses les propriétés "Ajout autorisé" et "Suppression autorisée" de ton sous-formulaire à "non" pour empêcher l'utilisateur d'ajouter ou de supprimer des lignes.
    Puis avec du code VBA tu peux faire quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    dim db as dao.database:set db=currentdb
    dim r as dao.recordset:set r=db.oepnrecordset("TaSource", dbopenDynaset)
    dim nbLigne as long:nbLigne=UneValeur ''À assigner en fonction du besoin
     
    dim i as long:for i=1 to NbLigne
       r.addnew
       'Ici assigner des valeurs si nécessaire
       r.update
    next i
     
    r.close:set r=nothing
    db.close:set db=nothing
    Je te reviens plus tard pour la suite.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Bonjour,
    je me suis rappelé cette contribution qui m'avait inspiré à l'époque
    https://www.developpez.net/forums/d3...registrements/

    CDLT
    "Always look at the bright side of life." Monty Python.

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Re-bonjour.

    Autre solution simple, par les données.
    Tu crées une table de référence, par exemple :
    tblProduit
    ClefProduit
    DesignationProduit

    Tu crées une table saisie du genre
    tblDetailCommande
    ClefDetailCommande
    ClefCommande
    ClefProduit
    QteProduit

    Tu définis un index unique sur ClefCommande & ClefPrpoduit qui va assurer que tu n'as jamais qu'une et une seule fois la combinaison Commande / Produit.
    Donc tu as au maximum pour chaque commande un nombre de lignes égale au nombre de produits.
    Si l'utilisateur essaye de mettre 2 fois le même produit dans la même commande, il y a une erreur et l'ajout du second est impossible.

    Tu mets une relation avec intégrité référentielle entre tblProduit et tblDetailCommande mais ça c'est juste une bonne gestion des données, ce n'est pas lié au contrôle du nombre de lignes.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Enfin voici la solution la plus compliquée : par le comptage des lignes.

    Il faut avoir quelque part l'information sur le nombre de lignes.
    Ex, avec la table

    tblDetailCommande
    ClefDetailCommande
    ClefCommande
    ClefProduit
    QteProduit

    On pourrait utiliser DCount("ClefDetailCommande","tblDetailCommande","[ClefCommande]=" & ClefCommande) qui va te donner le nombre de lignes dans la commande.

    Et dans le formulaire sur l'événement Sur Activation, tester cette valeur. Si cette valeur < Nb Ligne Max, autoriser l'ajout, sinon l'interdire.

    quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if Nz(me.NbLigneCommande<NbLigneMax) then
        me.allowaddition=true
      else
        me.allowaddition=false
    end if
    Il est possible qu'il faille aussi appeler ce du sur les événement "Après Insertion" et "Après Suppression".

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  10. #10
    Membre régulier
    Homme Profil pro
    je veux apprendre la programmation dans excel
    Inscrit en
    Février 2016
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : je veux apprendre la programmation dans excel

    Informations forums :
    Inscription : Février 2016
    Messages : 336
    Points : 102
    Points
    102
    Par défaut
    Salam, Bonjour

    Merci bien pour votre reponse C bon

    il y a une autre question si c possible bien sur

    j'ai un champ nommé C1 que je doit saisir le mois Mars par exemple
    et un autre chaque nommé C2
    comment faire pour que le C2 affiche le premier jour du mois du C1 c'est a dir le 1-3-2019
    Merci d'avance

Discussions similaires

  1. Limiter le nombre de lignes retournées
    Par Takusen dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/11/2006, 23h58
  2. Limiter le nombre des lignes en résultat
    Par Grand sorcier dans le forum Oracle
    Réponses: 1
    Dernier message: 11/07/2006, 14h30
  3. Limiter un nombre de lignes
    Par Trunks dans le forum Access
    Réponses: 5
    Dernier message: 25/01/2006, 13h29
  4. [C#] Limité le nombre de lignes dans une DataView ...
    Par maitrebn dans le forum Accès aux données
    Réponses: 5
    Dernier message: 07/11/2005, 23h57
  5. Limiter le nombre de Ligne d'un RichEdit
    Par Argonz dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/07/2004, 10h16

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