Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/07/2011, 11h07   #1
Membre habitué
 
Homme Mathieu R
Etudiant MIAGe
Inscription : février 2010
Messages : 145
Détails du profil
Informations personnelles :
Nom : Homme Mathieu R
Âge : 22
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Etudiant MIAGe
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2010
Messages : 145
Points : 141
Points : 141
Par défaut Suppression de données après archivage en VBA

Bonjour à tous,

Dans un module VBA, je copie des informations de ma base de données vers Excel.

C'est informations sont contenues dans un recordset :

Code :
Set SelectionGene = CurrentDb.OpenRecordset("SelectionGen")
Voila la requete contenue dans le recordSet :

Code :
1
2
3
SELECT Equipment.Program, Equipment.IDEQUIPMENT, Equipment.EquipmentDescription, Equipment.SubFamily, Equipment.IRP, Equipment.T0, Equipment.FtCv, Equipment.Article, Equipment.TotalQty, Equipment.Frequency, Equipment.Network, Equipment.Supplier, Equipment.[Country], EquipmentBatch.IDEQUIPMENTBATCH, EquipmentBatch.DescriptionBatch, EquipmentBatch.IDMODEL, EquipmentBatch.Qty, ML.IDML, ML.MLType, ML.ContractDate, ML.AdditionalNotes, ML.IncomingDate, ML.OffsetTwUser, ML.PP1W, ML.PP1Day, SBHistory.IDSB, SBHistory.IDNUMBER, SBHistory.SBModificationDate, SBHistory.DateSB, SBHistory.ExplanationSB, NeedHistory.IDNEED, NeedHistory.IDNUMBERNEED, NeedHistory.NeedModificationDate, NeedHistory.DateNeed, NeedHistory.ExplanationNeed, PPHistory.IDPPHISTORY, PPHistory.IDNUMBERPP, PPHistory.PPDate, PPHistory.PPComment, Program.Statut, PDP.FileName
FROM PP INNER JOIN ((NeedHistory INNER JOIN (SBHistory INNER JOIN (PPHistory INNER JOIN ML ON PPHistory.IDPPHISTORY = ML.PDP) ON SBHistory.IDSB = ML.SB) ON NeedHistory.IDNEED = ML.Need) INNER JOIN (((Program INNER JOIN Equipment ON Program.ProgramName = Equipment.Program) INNER JOIN (EquipmentBatch INNER JOIN LinkEqptBatchPPML ON EquipmentBatch.IDEQUIPMENTBATCH = LinkEqptBatchPPML.IDEQUIPMENTBATCH) ON Equipment.IDEQUIPMENT = EquipmentBatch.IDEQUIPMENT) INNER JOIN LinkEquipmentPP ON Equipment.IDEQUIPMENT = LinkEquipmentPP.IDEQUIPMENT) ON ML.IDML = LinkEqptBatchPPML.IDML) ON (PP.IDPP = LinkEqptBatchPPMLS.IDPP) AND (PP.IDPP = LinkEquipmentPP.IDPP)
WHERE (((Program.Statut)="X"));
Ce que je voudrais c'est supprimé les informations de cette requete après la copie vers Excel.
Comment puis-je le faire sans passer par plusieurs requete DELETE ?

Merci d'avance
__________________
Qui ne tente rien, ne tente rien !
Tydher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 11h36   #2
Membre actif
 
Inscription : décembre 2009
Messages : 204
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 204
Points : 186
Points : 186
Si tu souhaites supprimer des données de plusieurs tables il va te falloir plusieurs requêtes DELETE.

Du type :

Code :
1
2
3
4
5
DELETE FROM Equipement
WHERE IDEQUIPEMENT IN (
SELECT  Equipment.IDEQUIPMENT
FROM PP INNER JOIN ((NeedHistory INNER JOIN (SBHistory INNER JOIN (PPHistory INNER JOIN ML ON PPHistory.IDPPHISTORY = ML.PDP) ON SBHistory.IDSB = ML.SB) ON NeedHistory.IDNEED = ML.Need) INNER JOIN (((Program INNER JOIN Equipment ON Program.ProgramName = Equipment.Program) INNER JOIN (EquipmentBatch INNER JOIN LinkEqptBatchPPML ON EquipmentBatch.IDEQUIPMENTBATCH = LinkEqptBatchPPML.IDEQUIPMENTBATCH) ON Equipment.IDEQUIPMENT = EquipmentBatch.IDEQUIPMENT) INNER JOIN LinkEquipmentPP ON Equipment.IDEQUIPMENT = LinkEquipmentPP.IDEQUIPMENT) ON ML.IDML = LinkEqptBatchPPML.IDML) ON (PP.IDPP = LinkEqptBatchPPMLS.IDPP) AND (PP.IDPP = LinkEquipmentPP.IDPP)
WHERE (((Program.Statut)="X")))
tarnx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 11h45   #3
Membre habitué
 
Homme Mathieu R
Etudiant MIAGe
Inscription : février 2010
Messages : 145
Détails du profil
Informations personnelles :
Nom : Homme Mathieu R
Âge : 22
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Etudiant MIAGe
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2010
Messages : 145
Points : 141
Points : 141
Merci de ta réponse.

J'esperais qu'une autre méthode existait mais apparement non.
Il ne me reste plus qu'a faire des requetes pour chaque table et à les appelé dans mon module

J'ai déjà :

Code :
1
2
3
DELETE *
FROM Program
WHERE [Program].[Statut]="X";
Code :
1
2
3
4
5
 
DELETE *
FROM Equipment
WHERE Program In 
 (Select ProgramName from Program where Statut = "X");
Code :
1
2
3
4
5
DELETE *
FROM EquipmentBatch
WHERE IDEQUIPMENT IN 
 (Select IDEQUIPMENT FROM Equipment where Program IN 
  (Select ProgramName FROM Program where Statut = "X"));
Code :
1
2
3
4
5
6
DELETE *
FROM LinkEqptBatchPPML
WHERE IDEQUIPMENTBATCH IN 
 (Select IDEQUIPMENTBATCH FROM EquipmentBatch WHERE IDEQUIPMENT IN
  (Select IDEQUIPMENT from Equipment WHERE Program IN 
   (Select ProgramName FROM Program WHERE statut = "X")));
Merci beaucoup pour ta réponse rapide
__________________
Qui ne tente rien, ne tente rien !
Tydher est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h57.


 
 
 
 
Partenaires

Hébergement Web