J'ai une table <article> et une table <détail article>.
Je voudrais effacer par requête suppression tous les articles qui n'ont pas
de détail article.
Au moment de lancer la requête, j'ai un message qui me dit de préciser dans
quelle table il faut supprimer les enregistrements.
Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle
FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail
Article].NoArticle
WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Didier Bicking
Cette fonction, dans un module, devrait marcher :
Function SuppArticle()
Dim Db As Database Set Db = CurrentDb
Dim Art As Recordset Set Art = Db.OpenRecordset("Article")
While Not Art.EOF If DCount("Article", "Detail Article", "Article=" & Art!article) = 0 Then Art.Delete End If Art.MoveNext Wend
End Function
La fonction DCount comporte trois arguments : - le nom du champ dans lequel les valeurs doivent être comptées - le nom de la table dans laquelle se trouve ce champ - le critère de sélection des enregistrements. Si le champ Article de la table Détail n'est pas numérique, il faut écrire ce critère : "Article='" & Art!article & "'"
-- Didier Bicking
http://perso.wanadoo.fr/dbicking
"Fred" a écrit dans le message de news: 439ffd76$0$13977$
Du forum, bonjour,
J'ai une table <article> et une table <détail article>. Je voudrais effacer par requête suppression tous les articles qui n'ont pas de détail article. Au moment de lancer la requête, j'ai un message qui me dit de préciser dans quelle table il faut supprimer les enregistrements. Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
Cette fonction, dans un module, devrait marcher :
Function SuppArticle()
Dim Db As Database
Set Db = CurrentDb
Dim Art As Recordset
Set Art = Db.OpenRecordset("Article")
While Not Art.EOF
If DCount("Article", "Detail Article", "Article=" & Art!article) = 0
Then
Art.Delete
End If
Art.MoveNext
Wend
End Function
La fonction DCount comporte trois arguments :
- le nom du champ dans lequel les valeurs doivent être comptées
- le nom de la table dans laquelle se trouve ce champ
- le critère de sélection des enregistrements. Si le champ Article de la
table Détail n'est pas numérique, il faut écrire ce critère : "Article='" &
Art!article & "'"
"Fred" <fred@memorys.fr> a écrit dans le message de news:
439ffd76$0$13977$636a15ce@news.free.fr...
Du forum, bonjour,
J'ai une table <article> et une table <détail article>.
Je voudrais effacer par requête suppression tous les articles qui n'ont
pas de détail article.
Au moment de lancer la requête, j'ai un message qui me dit de préciser
dans quelle table il faut supprimer les enregistrements.
Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle
FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle =
[Détail Article].NoArticle
WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Dim Art As Recordset Set Art = Db.OpenRecordset("Article")
While Not Art.EOF If DCount("Article", "Detail Article", "Article=" & Art!article) = 0 Then Art.Delete End If Art.MoveNext Wend
End Function
La fonction DCount comporte trois arguments : - le nom du champ dans lequel les valeurs doivent être comptées - le nom de la table dans laquelle se trouve ce champ - le critère de sélection des enregistrements. Si le champ Article de la table Détail n'est pas numérique, il faut écrire ce critère : "Article='" & Art!article & "'"
-- Didier Bicking
http://perso.wanadoo.fr/dbicking
"Fred" a écrit dans le message de news: 439ffd76$0$13977$
Du forum, bonjour,
J'ai une table <article> et une table <détail article>. Je voudrais effacer par requête suppression tous les articles qui n'ont pas de détail article. Au moment de lancer la requête, j'ai un message qui me dit de préciser dans quelle table il faut supprimer les enregistrements. Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
Eric
Bonjour,
Essaies ceci après avoir fait, de préférence, une copie de tes tables.
DELETE FROM Articles WHERE NoArticle NOT IN (SELECT DISTINCT NoArticle From [Détail Article])
Du forum, bonjour,
J'ai une table <article> et une table <détail article>. Je voudrais effacer par requête suppression tous les articles qui n'ont pas de détail article. Au moment de lancer la requête, j'ai un message qui me dit de préciser dans quelle table il faut supprimer les enregistrements. Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
Essaies ceci après avoir fait, de préférence, une copie de tes tables.
DELETE
FROM Articles
WHERE NoArticle NOT IN (SELECT DISTINCT NoArticle From [Détail Article])
Du forum, bonjour,
J'ai une table <article> et une table <détail article>.
Je voudrais effacer par requête suppression tous les articles qui n'ont pas
de détail article.
Au moment de lancer la requête, j'ai un message qui me dit de préciser dans
quelle table il faut supprimer les enregistrements.
Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle
FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail
Article].NoArticle
WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Essaies ceci après avoir fait, de préférence, une copie de tes tables.
DELETE FROM Articles WHERE NoArticle NOT IN (SELECT DISTINCT NoArticle From [Détail Article])
Du forum, bonjour,
J'ai une table <article> et une table <détail article>. Je voudrais effacer par requête suppression tous les articles qui n'ont pas de détail article. Au moment de lancer la requête, j'ai un message qui me dit de préciser dans quelle table il faut supprimer les enregistrements. Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Jessy Sempere [MVP]
Bonjour
Essais : DELETE [Articles].* FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Fred" a écrit dans le message de news:439ffd76$0$13977$
Du forum, bonjour,
J'ai une table <article> et une table <détail article>. Je voudrais effacer par requête suppression tous les articles qui n'ont pas
de détail article. Au moment de lancer la requête, j'ai un message qui me dit de préciser dans
quelle table il faut supprimer les enregistrements. Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
Bonjour
Essais :
DELETE [Articles].*
FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail
Article].NoArticle
WHERE ((([Détail Article].NoDétailArticle) Is Null));
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Fred" <fred@memorys.fr> a écrit dans le message de
news:439ffd76$0$13977$636a15ce@news.free.fr...
Du forum, bonjour,
J'ai une table <article> et une table <détail article>.
Je voudrais effacer par requête suppression tous les articles qui n'ont
pas
de détail article.
Au moment de lancer la requête, j'ai un message qui me dit de préciser
dans
quelle table il faut supprimer les enregistrements.
Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle
FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle [Détail
Article].NoArticle
WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Essais : DELETE [Articles].* FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Fred" a écrit dans le message de news:439ffd76$0$13977$
Du forum, bonjour,
J'ai une table <article> et une table <détail article>. Je voudrais effacer par requête suppression tous les articles qui n'ont pas
de détail article. Au moment de lancer la requête, j'ai un message qui me dit de préciser dans
quelle table il faut supprimer les enregistrements. Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
Fred
Bonjour Jessy
Résultat: Operation must use an updatable query L'opération utilise une requête qui ne peut être mise à jour.
Effectivement, ta solution est la première que j'ai voulu utiliser. Je pense que je vais passer d'abord par une requête mise à jour pour "marquer" les enregistrement à supprimer par la suite. Ca manque d'élégance mais bon...
Merci de m'avoir répondu Fred
"Jessy Sempere [MVP]" a écrit dans le message de news: 43a0162c$
Bonjour
Essais : DELETE [Articles].* FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Fred" a écrit dans le message de news:439ffd76$0$13977$
Du forum, bonjour,
J'ai une table <article> et une table <détail article>. Je voudrais effacer par requête suppression tous les articles qui n'ont pas
de détail article. Au moment de lancer la requête, j'ai un message qui me dit de préciser dans
quelle table il faut supprimer les enregistrements. Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle > [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
Bonjour Jessy
Résultat:
Operation must use an updatable query
L'opération utilise une requête qui ne peut être mise à jour.
Effectivement, ta solution est la première que j'ai voulu utiliser.
Je pense que je vais passer d'abord par une requête mise à jour pour
"marquer" les enregistrement à supprimer par la suite.
Ca manque d'élégance mais bon...
Merci de m'avoir répondu
Fred
"Jessy Sempere [MVP]" <jessy.sempere@prg.sncf.fr> a écrit dans le message de
news: 43a0162c$1@news.sncf.fr...
Bonjour
Essais :
DELETE [Articles].*
FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle =
[Détail
Article].NoArticle
WHERE ((([Détail Article].NoDétailArticle) Is Null));
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Fred" <fred@memorys.fr> a écrit dans le message de
news:439ffd76$0$13977$636a15ce@news.free.fr...
Du forum, bonjour,
J'ai une table <article> et une table <détail article>.
Je voudrais effacer par requête suppression tous les articles qui n'ont
pas
de détail article.
Au moment de lancer la requête, j'ai un message qui me dit de préciser
dans
quelle table il faut supprimer les enregistrements.
Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle
FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle > [Détail
Article].NoArticle
WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Résultat: Operation must use an updatable query L'opération utilise une requête qui ne peut être mise à jour.
Effectivement, ta solution est la première que j'ai voulu utiliser. Je pense que je vais passer d'abord par une requête mise à jour pour "marquer" les enregistrement à supprimer par la suite. Ca manque d'élégance mais bon...
Merci de m'avoir répondu Fred
"Jessy Sempere [MVP]" a écrit dans le message de news: 43a0162c$
Bonjour
Essais : DELETE [Articles].* FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Fred" a écrit dans le message de news:439ffd76$0$13977$
Du forum, bonjour,
J'ai une table <article> et une table <détail article>. Je voudrais effacer par requête suppression tous les articles qui n'ont pas
de détail article. Au moment de lancer la requête, j'ai un message qui me dit de préciser dans
quelle table il faut supprimer les enregistrements. Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle > [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
Fred
Bonjour Didier,
C'est ce qui s'appelle "prendre la porte de derrière". Effectivement, là où les requêtes ne marchent pas ta solution me semble tout à fait jouable.
Je te remercie Fred
"Didier Bicking" a écrit dans le message de news: 43a00024$0$19688$
Cette fonction, dans un module, devrait marcher :
Function SuppArticle()
Dim Db As Database Set Db = CurrentDb
Dim Art As Recordset Set Art = Db.OpenRecordset("Article")
While Not Art.EOF If DCount("Article", "Detail Article", "Article=" & Art!article) = 0 Then Art.Delete End If Art.MoveNext Wend
End Function
La fonction DCount comporte trois arguments : - le nom du champ dans lequel les valeurs doivent être comptées - le nom de la table dans laquelle se trouve ce champ - le critère de sélection des enregistrements. Si le champ Article de la table Détail n'est pas numérique, il faut écrire ce critère : "Article='" & Art!article & "'"
-- Didier Bicking
http://perso.wanadoo.fr/dbicking
"Fred" a écrit dans le message de news: 439ffd76$0$13977$
Du forum, bonjour,
J'ai une table <article> et une table <détail article>. Je voudrais effacer par requête suppression tous les articles qui n'ont pas de détail article. Au moment de lancer la requête, j'ai un message qui me dit de préciser dans quelle table il faut supprimer les enregistrements. Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
Bonjour Didier,
C'est ce qui s'appelle "prendre la porte de derrière".
Effectivement, là où les requêtes ne marchent pas ta solution me semble tout
à fait jouable.
Je te remercie
Fred
"Didier Bicking" <dbicking@wanadoo.fr> a écrit dans le message de news:
43a00024$0$19688$8fcfb975@news.wanadoo.fr...
Cette fonction, dans un module, devrait marcher :
Function SuppArticle()
Dim Db As Database
Set Db = CurrentDb
Dim Art As Recordset
Set Art = Db.OpenRecordset("Article")
While Not Art.EOF
If DCount("Article", "Detail Article", "Article=" & Art!article) =
0 Then
Art.Delete
End If
Art.MoveNext
Wend
End Function
La fonction DCount comporte trois arguments :
- le nom du champ dans lequel les valeurs doivent être comptées
- le nom de la table dans laquelle se trouve ce champ
- le critère de sélection des enregistrements. Si le champ Article de la
table Détail n'est pas numérique, il faut écrire ce critère : "Article='"
& Art!article & "'"
"Fred" <fred@memorys.fr> a écrit dans le message de news:
439ffd76$0$13977$636a15ce@news.free.fr...
Du forum, bonjour,
J'ai une table <article> et une table <détail article>.
Je voudrais effacer par requête suppression tous les articles qui n'ont
pas de détail article.
Au moment de lancer la requête, j'ai un message qui me dit de préciser
dans quelle table il faut supprimer les enregistrements.
Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle
FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle =
[Détail Article].NoArticle
WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
C'est ce qui s'appelle "prendre la porte de derrière". Effectivement, là où les requêtes ne marchent pas ta solution me semble tout à fait jouable.
Je te remercie Fred
"Didier Bicking" a écrit dans le message de news: 43a00024$0$19688$
Cette fonction, dans un module, devrait marcher :
Function SuppArticle()
Dim Db As Database Set Db = CurrentDb
Dim Art As Recordset Set Art = Db.OpenRecordset("Article")
While Not Art.EOF If DCount("Article", "Detail Article", "Article=" & Art!article) = 0 Then Art.Delete End If Art.MoveNext Wend
End Function
La fonction DCount comporte trois arguments : - le nom du champ dans lequel les valeurs doivent être comptées - le nom de la table dans laquelle se trouve ce champ - le critère de sélection des enregistrements. Si le champ Article de la table Détail n'est pas numérique, il faut écrire ce critère : "Article='" & Art!article & "'"
-- Didier Bicking
http://perso.wanadoo.fr/dbicking
"Fred" a écrit dans le message de news: 439ffd76$0$13977$
Du forum, bonjour,
J'ai une table <article> et une table <détail article>. Je voudrais effacer par requête suppression tous les articles qui n'ont pas de détail article. Au moment de lancer la requête, j'ai un message qui me dit de préciser dans quelle table il faut supprimer les enregistrements. Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
Eric
Bonsoir,
Et ma solution ne convient pas ? Prendre de l'artillerie lourde pour faire une suppression me parait injustifiée mais bon c'est un choix ;-)
Bonjour Didier,
C'est ce qui s'appelle "prendre la porte de derrière". Effectivement, là où les requêtes ne marchent pas ta solution me semble tout à fait jouable.
Je te remercie Fred
"Didier Bicking" a écrit dans le message de news: 43a00024$0$19688$
Cette fonction, dans un module, devrait marcher :
Function SuppArticle()
Dim Db As Database Set Db = CurrentDb
Dim Art As Recordset Set Art = Db.OpenRecordset("Article")
While Not Art.EOF If DCount("Article", "Detail Article", "Article=" & Art!article) = 0 Then Art.Delete End If Art.MoveNext Wend
End Function
La fonction DCount comporte trois arguments : - le nom du champ dans lequel les valeurs doivent être comptées - le nom de la table dans laquelle se trouve ce champ - le critère de sélection des enregistrements. Si le champ Article de la table Détail n'est pas numérique, il faut écrire ce critère : "Article='" & Art!article & "'"
-- Didier Bicking
http://perso.wanadoo.fr/dbicking
"Fred" a écrit dans le message de news: 439ffd76$0$13977$
Du forum, bonjour,
J'ai une table <article> et une table <détail article>. Je voudrais effacer par requête suppression tous les articles qui n'ont pas de détail article. Au moment de lancer la requête, j'ai un message qui me dit de préciser dans quelle table il faut supprimer les enregistrements. Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonsoir,
Et ma solution ne convient pas ?
Prendre de l'artillerie lourde pour faire une suppression me parait
injustifiée mais bon c'est un choix ;-)
Bonjour Didier,
C'est ce qui s'appelle "prendre la porte de derrière".
Effectivement, là où les requêtes ne marchent pas ta solution me semble tout
à fait jouable.
Je te remercie
Fred
"Didier Bicking" <dbicking@wanadoo.fr> a écrit dans le message de news:
43a00024$0$19688$8fcfb975@news.wanadoo.fr...
Cette fonction, dans un module, devrait marcher :
Function SuppArticle()
Dim Db As Database
Set Db = CurrentDb
Dim Art As Recordset
Set Art = Db.OpenRecordset("Article")
While Not Art.EOF
If DCount("Article", "Detail Article", "Article=" & Art!article) =
0 Then
Art.Delete
End If
Art.MoveNext
Wend
End Function
La fonction DCount comporte trois arguments :
- le nom du champ dans lequel les valeurs doivent être comptées
- le nom de la table dans laquelle se trouve ce champ
- le critère de sélection des enregistrements. Si le champ Article de la
table Détail n'est pas numérique, il faut écrire ce critère : "Article='"
& Art!article & "'"
"Fred" <fred@memorys.fr> a écrit dans le message de news:
439ffd76$0$13977$636a15ce@news.free.fr...
Du forum, bonjour,
J'ai une table <article> et une table <détail article>.
Je voudrais effacer par requête suppression tous les articles qui n'ont
pas de détail article.
Au moment de lancer la requête, j'ai un message qui me dit de préciser
dans quelle table il faut supprimer les enregistrements.
Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle
FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle =
[Détail Article].NoArticle
WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Et ma solution ne convient pas ? Prendre de l'artillerie lourde pour faire une suppression me parait injustifiée mais bon c'est un choix ;-)
Bonjour Didier,
C'est ce qui s'appelle "prendre la porte de derrière". Effectivement, là où les requêtes ne marchent pas ta solution me semble tout à fait jouable.
Je te remercie Fred
"Didier Bicking" a écrit dans le message de news: 43a00024$0$19688$
Cette fonction, dans un module, devrait marcher :
Function SuppArticle()
Dim Db As Database Set Db = CurrentDb
Dim Art As Recordset Set Art = Db.OpenRecordset("Article")
While Not Art.EOF If DCount("Article", "Detail Article", "Article=" & Art!article) = 0 Then Art.Delete End If Art.MoveNext Wend
End Function
La fonction DCount comporte trois arguments : - le nom du champ dans lequel les valeurs doivent être comptées - le nom de la table dans laquelle se trouve ce champ - le critère de sélection des enregistrements. Si le champ Article de la table Détail n'est pas numérique, il faut écrire ce critère : "Article='" & Art!article & "'"
-- Didier Bicking
http://perso.wanadoo.fr/dbicking
"Fred" a écrit dans le message de news: 439ffd76$0$13977$
Du forum, bonjour,
J'ai une table <article> et une table <détail article>. Je voudrais effacer par requête suppression tous les articles qui n'ont pas de détail article. Au moment de lancer la requête, j'ai un message qui me dit de préciser dans quelle table il faut supprimer les enregistrements. Un vrai casse-tête !
DELETE [Articles].NoArticle, [Détail Article].NoDétailArticle FROM [Articles] LEFT JOIN [Détail Article] ON [Articles].NoArticle = [Détail Article].NoArticle WHERE ((([Détail Article].NoDétailArticle) Is Null));
--> Specify the table containing the records you want to delete.
Si quelqu'un peut m'aider, merci d'avance !
Fred
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr