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 :

Cases à cocher, séléctionner toutes les lignes filtrées dans une table


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Cases à cocher, séléctionner toutes les lignes filtrées dans une table
    Bonjour,

    Je sollicite votre aide au sujet du système de cases à cocher.



    Contexte:

    J'ai une table avec plus de 80000 lignes dans laquelle j'ai inséré une colonne de cases à cocher.
    Lorsque j'utilise les filtres pour afficher les lignes dont j'ai besoin (par exemple 3 lignes) et que je coche les cases correspondantes à ces lignes là, j'ouvre alors un formulaire qui m'affiche les informations de ces lignes.



    Demande:

    Access permet, grace à une requete de mise à jour, de cocher toutes les cases en meme temps, de toutes lignes de la table.
    Cependant, serait-il possible de cocher toutes les cases en meme temps, mais seulement pour les lignes filtrées?
    C'est à dire donc dans mon exemple, 3 lignes sur 80000.

    Merci.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Dans une table filtrée je ne pense pas que cela soit possible.
    Mais en utilisant un formulaire continu, on doit pouvoir accéder à l'objet Recordset du formulaire ou le son clone et de ce fait aux enregistrements affichés et faire la mise à jour avec un Update en DAO.

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Bonjour Pepelu,

    Une méthode est de générer une requête SQL dynamiquement en parcourant la liste et récupérant l’identifiant des lignes cochées et ensuite en associant le SQL au recordsource du formulaire appelé
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    J'imagine que ton filtre s'applique sur un formulaire?

    Disons que oui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Set rsFiltré=me.recordset.openrecordset
     
    While not rsFiltré.eof
       rsFiltré.edit
       rsFiltré("CaseAcocher")=true
       rsFiltré.update
       rsFiltré.movenext
    Wend
     
    set rsFiltré=nothing
    Dernière modification par marot_r ; 21/04/2018 à 13h10.

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Comme je présume que la case à cocher est liée à un champ d’une table (tableX) une solution possible est d’affecter au recordsource du formulaire appelé une requête du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [liste champs] FROM tableX WHERE caseCoche = true
    Bien sûr, si les infos proviennent de tables multiples, il faudra faire des jointures
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour à tous,

    Merci de m'avoir répondu.

    Dysorthographie, je souhaiterai une précision sur le code que tu m'as apporté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set rsFiltré=me.recordset.openrecordset
     
    While not rsFiltré.eof
       rsFiltré.edit
       rsFiltré("CaseAcocher")=true
       rsFiltré.update
       rsFiltré.movenext
    Wend
     
    set rsFiltré=nothing

    Tout d'abord, pour répondre à ta question, le filtre s'applique au formulaire dans le sens où :

    - Je filtre dans la table nommée "CAD",
    - Je coche une à une les cases dans cette table,
    - J'ouvre mon formulaire pour appliquer le résultat.


    Dans cette partie du code .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rsFiltré("CaseAcocher")=true
    je comprends que je dois écrire le nom de la colonne.

    Mais quelque part, dans le code général, ne dois-je pas écrire le nom de la table également?

    Merci

Discussions similaires

  1. [XL-2007] Retrouver toutes les lignes qui ont une valeur identique dans la colonne A
    Par bartimeus35 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/06/2012, 17h47
  2. Réponses: 5
    Dernier message: 18/03/2009, 12h11
  3. Récupérer les lignes uniques dans une table
    Par Empty_body dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/01/2009, 19h23
  4. Réponses: 5
    Dernier message: 17/12/2008, 17h53
  5. Réponses: 2
    Dernier message: 21/10/2005, 13h22

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