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
    Membre à l'essai
    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
    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 confirmé

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 848
    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.

  3. #3
    Membre éprouvé

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 026
    Billets dans le blog
    45
    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é

  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
    1 026
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 026
    Billets dans le blog
    45
    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

  6. #6
    Membre à l'essai
    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
    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