Supprimer enregistrements BD sans affecter table liées...

Résolu
zener82 Messages postés 15 Date d'inscription samedi 25 novembre 2000 Statut Membre Dernière intervention 18 juillet 2021 - 11 déc. 2007 à 15:10
zener82 Messages postés 15 Date d'inscription samedi 25 novembre 2000 Statut Membre Dernière intervention 18 juillet 2021 - 11 déc. 2007 à 16:13
Bonjour à toutes et tous.

Je programme actuellement quelques fonctions en VBA, et je souhaite supprimer des enregistrements d'une table de ma base de données (access).

Je butte sur un soucis :
-comment supprimer les enregistrements d'un recordset dans la table courante, sans que cette suppression ne se répercute sur les tables liées ? J'ai bien tenté de jouer avec l'option "adAffectGroup" mais rien n'y fait !

Merci d'avance pour votre aide !!

Afin d'illustrer, voici un bout de code :
<hr />' connexion à la BD
   Set MaConnexion1 = New Connection
   MaConnexion1.Provider = "Microsoft.Jet.oledb.4.0"
   MaConnexion1.Open CStr(Application.Worksheets("DataBase").Cells(3, 4).Value)

' creation requete    
   Set MaRequete1 = New Recordset
   With MaRequete1
      .ActiveConnection = ConnexionDest      queryString "SELECT * FROM SeqAlgo WHERE SeqNom " & Chr(39) & SeqName & Chr(39) & " "
      .Open queryString, , adOpenDynamic, adLockPessimistic
   End With

'suppression de l'enreg, qui malgré moi, supprime aussi les enregistrements des tables liées
   Do While MaRequete1.EOF <> True           
      MaRequete1.Delete adAffectGroup
      MaRequete1.MoveNext
   Loop
   MaRequete1.Close

<hr />

2 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
11 déc. 2007 à 16:08
Tu n'as que 2 cas possibles si tu as des tables liées.

Soit tu supprime un enregistrement dans une table, et tu supprime en cascade tous les enregistrements liés dans les tables liées,
Soit tu ne peux pas supprimer l'enregistrement tant qu'il existe des enregistrements liés. Autrement dit il faut commencer par supprimer les enregistrements liés avant de suprimer l'enregistrement.

Il ne peut pas (n'est pas conseiller d') en etre autrement sinon tu vas te retrouver avec des enregistrements orphelins te mettant le bordel dans la base et pouvant mener assez rapidement à une base corrompue pouvant entrainer la perte des données.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
zener82 Messages postés 15 Date d'inscription samedi 25 novembre 2000 Statut Membre Dernière intervention 18 juillet 2021
11 déc. 2007 à 16:13
Oki oki, merci bien pour ta réponse...
0