REQUETE ACCESS

Résolu
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 13 déc. 2005 à 15:25
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 13 déc. 2005 à 16:51
Salut,

J'ai un petit pb de requete. J'ai en fait 2 tables liés par une jointure.
MaMere et MaTableFille

MaTableFille.Index est lié à MaTableMere.Index
Dans MaTableMere le champs index est ma clé primaire.

Donc impossible de supprimer un enregistrement dans MaTableMere s'il est utilisé par MaTableFille.

Je souhaite appurer une base en supprimant tout les enregistrements de MaTableMere qui ne sont pas liés à MaTableFille.

Existe-t-il une requette qui fasse cela automatiquement ?

Sinon je suis parti sur ce code :
PS : TAB_CRITERE3 est MaTableMere et TAB_CRITERE4 est MaTableFille

SQL = "SELECT * FROM TAB_CRITERE"
Set rs = New ADODB.Recordset
Call rs.Open(SQL, BaseSave, adOpenDynamic, adLockOptimistic)
Do While Not rs.EOF
On Error Resume Next
Call rs.Delete
Err.Clear
Call rs.Update
Call rs.MoveNext
Loop

Le On Error Resume Next me permet de sauter les erreurs liées au enregistrement utilisé par ma table Fille. Cependant, chose bizarre, le code ne sort jamais de la boucle. Et pour cause, le rs.MoveNext ne fonctionne plus. Je reste donc toujours sur le même enregistrement

Merci d'avance
Bonne prog
++

2 réponses

nanou1605 Messages postés 36 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 15 décembre 2006
13 déc. 2005 à 16:41
Salut,
essaye avec cette requête

DELETE
FROM MaTableMere
where index not in (select index from MaTableFille)

Seb
3
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
13 déc. 2005 à 16:51
Parfait, quelle classe.


Merci beaucoup

Bonne prog
++
0
Rejoignez-nous