Effacer une ligne dans la base de donnée [Résolu]

Signaler
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
-
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007
-
Bonjour , je voudrais savoir comment on fait pour effacer une ligne dans une base de donnée

c'est a dir par exemple que si j'ai 10 lignes dans la base de donnee et que je veux effacer la 5iem
comment je doit faire pour qu'il enleve la 5iem et laisse le reste

Merci

4 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Salut,


D'une part, tu pourrais empêcher qu'il y ait des doublons si tu
changeais les propriétés de certains de tes champs en spécifiant "Sans
doublon"


Pour effacer avec DAO, tu dois trouver l'enregistrement avec un Select, puis l'effacer avec Delete


'Faire un Select incluant tous les champs à vérifier

Si c'est du texte, il faut mettre des apostrophes autour des valeurs.
Si c'est des dates, il faut mettre des dièses #. Si c'est des nombres
tu ne mets rien. Ici j'ai écris ChampX à remplacer par les noms de tes
champs.
Set rs = db.OpenRecordset("Select * From caisse1 where Champ1= 'toto' and Champ2 = 'a' and Champ3 = 'b'")
If rs.recordcount > 0 then rs.delete ' si Recordcount est plus grand que 0 c'est qu'un enregistrement a été trouvé et on l'efface

Else

msgbox "Aucun enregistrement trouvé"

End if

en espérant que ça puisse t'aider un peu

MPi
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007

Pour éliminer tous les doublons d'une table, tu peux utiliser 4 ordres SQL. Je crois que c'est le plus simple et le plus rapide :



Dim bdd As DAO.Database
  Set bdd = OpenDatabase("c:\temp\bd1.mdb")
  ' on crée une table tempo sans les doublons
  bdd.Execute "SELECT DISTINCT * INTO TaTableTmp FROM TaTable"
  ' on efface le contenu de la table de départ
  bdd.Execute "DELETE FROM TaTable"
  ' on retransfère le contenu de la table tempo dans la table de départ
  bdd.Execute "INSERT INTO TaTable SELECT * FROM TaTableTmp"
  ' on détruit la table tempo
  bdd.Execute "DROP TABLE TaTableTmp"


Il existe d'autres solutions à base de tableaux, compteurs et autres astuces plus ou moins alambiquées. Moi je préfère celle-là. Il parait même qu'on peut faire ça en une seule requete mais je ne sais pas encore comment.
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007

Salut, sans plus de précisions je dirais :
cnn.Execute "DELETE FROM TaTable WHERE TonCritere"
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
bonjour ,

j'utilise :
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = OpenDatabase(App.Path & "\manager.mdb")
Set rs = db.OpenRecordset("caisse1")

dans la table caisse j'ai  mes champs 1,2,3,4,5,6 on vas dir
donc je doit faire comment ?? , je suis vraiment novice de novice
si j'ai 5 ligne
         1          2           3           4          5
1    toto         a            b            c         d 
2    toto         a            b            c         d
3    titi           e            f              g         h
4    titi           i             j               k         l
5    tata         r            t               j           j
et je veux suprimer la ligne 2(qui est la meme que la 1) , vous pouvez me le dire svp Merci