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 :

Supprimer ligne


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 26
    Points
    26
    Par défaut Supprimer ligne
    Bonjour,

    J aimerais savoir si quelqu un pourrait m aider a supprimer des lignes de mes tables, a l aide d une requete, ou j ai des 0 dans tous les champs sauf la date, genre ca:

    Date Val1 Val2 Val3 .... Valn

    12/03 1 21 32 1 23 3 3
    13/03 0 0 0 0

    J aimerais donc virer la ligne 13/03. Un autre detail est que j ai plusieurs date qui ont cette tete la, et elles n ont pas toutes le meme nombre de champs.

    Merci par avance de votre precieuse aide.

  2. #2
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Bonjour,

    Apparemment tu n'as pas de bases en SQL, je te conseille donc la lecture de ce cours :
    http://www.developpez.com/sgbd/access/sql.htm

    Il te sera vraiment utile pour ton developpement.

    Pour te mettre sur la voie, ta requete est vraiment tres simple, tu utiliseras l4instruction DELETE, et dans le Where tu auras entre autre :
    Il serait vraiment interessant que tu arrive a faire le reste toi-meme. Car je le repete la requete est vraiment tres facile et ce serait un bon debut.

    En esperant que ca t'aide
    J'aime les gâteaux.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    je te remercie de ta reponse. Il est vrai que je suis tres loin d etre une star en sql, mais il me semble que ce qui est une difficulte pour moi, est le fait qu il n y ai pas un nombre fixe de colonnes d une table a une autre et que je ne vois pas comment verifier que tous les champs, a part celui de la date sont nuls. Je compte faire ca avec VBA, et certes avec un nombre fixe de colonnes, ma question parait un peu debile...

  4. #4
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Desole ... je n'avais pas vraiment accorde d'importance au fait qu'il y avait un nombre aleatoire de colonnes. Ce n'est donc effectivement pas des plus simple

    Tu trouveras dans la FAQ comment obtenir le nom de tous les champs d'une table. Ainsi, je pense qu'en VBA tu pourras construire une requete prennant en compte tous les champs qui t'interessent.

    Par contre ... les dates qui ont un nombre de colonne aleatoire sont dans la meme table ?

    En esperant que ca t'aide.
    J'aime les gâteaux.

  5. #5
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2004
    Messages : 159
    Points : 131
    Points
    131
    Par défaut
    Si tu le fais avec VBA, c'est plus facile.
    Il faut construire ta requête en fonction de la définition de la table.
    (regarde la hiérarchie des objets en DAO : tabledefs).
    Pour chaque champ autre que la date tu ajoutes une ligne dans la clause where.

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut
    Oui, la solution VBA est apparement la meilleur mais tu n'as pas besoin de créer une requète, tu peux tout faire en code en utilisant la collection Fields du recordset.

    Attention ceci nécessite une ref sur DAO 3.6

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
      dim db as database:set db=currentdb
      dim r as recordset: set r=db.openrecordset("maTable")
      dim f as field
      dim cptChampsData as integer
     
      'Compte le nombre de champs de données dans le recorset
     
      for each f in r.field
        if f.type<>dbDate then
         (Verifie, si ce n'est pas dbDate, fait afficher le type d'un champ Date pour connaitre l'integer qui est dérière)
           cptChampsData=ChampsData+1
        end if
      next f
     
       dim cptChampsUtilise as integer
       do while not r.eof
     
         cptChampsNonUtilses=0
     
         for each f in r.fields
           if f.type<>dbDate and f.value=0 then
             cptChampsNonUtilses=cptChampsNonUtlises+1
           end if
         next f
     
         if cptChampsNonUtilses=cptChampsData then
           'Tous les champs sont à 0 -> Suppression de l'enr
           r.delete
         end if
     
         r.movenext
      loop
     
      r.close:set r=nothing
      db.close :set db=nothing
    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.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/05/2006, 13h38
  2. [C#][Débutant] 4 questions pour supprimer ligne dans datagriview
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/05/2006, 23h42
  3. supprimer lignes d'une variable session tableau sauf 1
    Par epeichette dans le forum Langage
    Réponses: 1
    Dernier message: 30/03/2006, 17h41
  4. [Tableaux] débutant : supprimer ligne tableau
    Par samplaid dans le forum Langage
    Réponses: 2
    Dernier message: 27/03/2006, 10h39
  5. Supprimer ligne en double
    Par azman0101 dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/06/2004, 17h53

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