Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1427 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU]INSER INTO si données différentes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU]INSER INTO si données différentes

n°1606285
slicksfr
Posté le 30-08-2007 à 14:13:35  profilanswer
 

Salut.
Je ne suis pas un pro de SQL et je n'arrive pas à trouver comment résoudre mon pb.
 
J'ai un script VBA sous Acces qui interroge une liste de PC (300 machines à therme) contenue dans une table.
Pour chaque PC, je relève la taille_Hdd, model_Hdd, Date_Reboot, IP,....
et j'insère toutes mes données (40) récoltées dans une autre table
avec les champs Date, NomDuPc, taille_Hdd, model_Hdd, Date_Reboot, IP,....,champ(40)
 
Jusque là pas de pb.
 
Par contre je voudrais ne pas insérer en base, des données d'un Pc qui n'ont pas changé depuis la dernière entrée en base


         Date(now), NomDuPc, taille_Hdd, model_Hdd, Date_Reboot, IP,....
5         29/08/07,   Pc1,         40,          Seagate,     25/08/07,     195.10.2.1  
4         28/08/07,   Pc1,         40,          Seagate,     25/08/07,     195.10.2.3  
3         27/08/07,   Pc1,         40,          Seagate,     25/08/07,     195.10.2.3
2         27/08/07,   Pc2,         20,          Seagate,     25/08/07,     195.10.2.3
1         25/08/07,   Pc1,         40,          Seagate,     25/08/07,     195.10.2.1
 


 
L'enregistrement N°4 est inutile, il est identique au N°3
Par contre le N° 5 est utile car il est <> N°1 malgré qu'il soit identique au N°1
 
 
 
Pour obtenir ce que je veux il faut que je fasse :
- Filtrer la table avec le NomDuPc
- Récupérer la dernière écriture faite pour ce PC
- Tester sur tous champs sauf le champ date est égal
- Si test différent alors écriture des nouvelles données dans une nouvelle ligne avec la date du jour dans le champ date
 
La seule solution que j'ai trouvé ( je n'arrive pas à la faire marcher :sweat: )  mais je ne suis même pas sur qu'elle réponde à mes besoins :
 
strRequete = "INSERT INTO Tbl_PC (Date, NomDuPc, TailleHdd, ....., IP) VALUES (#" & Now & "#, 'PC1', 40, ...., '195.10.2.1)  NOT IN ( SELECT TOP 1  * FROM Tbl_PC WHERE Nom_Pc = '" & strComputer & "' ORDER BY Date_Evt desc);"
 
Peut-être faudrait-il que j'insère tout en base et à la fin de mon script VBA, lancer une requête qui filtrerait et effacerait les champs en doublon ?
 
Voilà, si quelqu'un voit un peu comment faire... :love:


Message édité par slicksfr le 30-08-2007 à 17:12:09
mood
Publicité
Posté le 30-08-2007 à 14:13:35  profilanswer
 

n°1606345
MagicBuzz
Posté le 30-08-2007 à 15:39:45  profilanswer
 

fait ça en deux passes : un select avec tes valeurs à inserrée.
=> si ça retourne une ligne, bah t'insère pas
=> sinon t'insère
 
je ne vois pas trop de moyen plus simple avec access
 
avec un sgbd correct (genre SQL Server) je t'aurais dit de faire un trigger ou une PS, mais là...

n°1606383
slicksfr
Posté le 30-08-2007 à 16:24:01  profilanswer
 

J'ai apparemment trouver comment faire, je teste dans tous les sens pour voir si il n'y a pas de boulette ... :heink:  
 
strRequete = "SELECT  * FROM ( SELECT TOP 1  * FROM Tbl_PC  WHERE Nom_Pc = '" & NomDuPc & "' ORDER BY Date_Evt desc) WHERE  ("Nom_Pc =  '" & strComputer  & "' AND " TailleHdd   =  '" & strTailleHdd  & "'...);
 
Set Enr = CurrentDb.OpenRecordset(strRequete)
 
If Enr.RecordCount >= 1 Then
 debug.print "Enregistrement existe déjà"
else
 debug.print "insertion des données"
End if
 
 
Merci
 
A+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU]INSER INTO si données différentes

 

Sujets relatifs
Afficher du code en couleur dans une page HTML[SqlServer2005][Résolu] Fichier corrompu dans la base tempdb ?
[resolu] pb access 2002 et VBA (formulaire)[résolu] separateur de chemin : existe t'il une constante?
[RESOLU] WindowsMediaPlayerRecuperer données d'un fichier html et les stocker dans un .txt
[Flash-html] Musique player RESOLU[Résolu] Restaurer pop-up js
Formulaire : envoyer des données dans le même fichier[résolu] Random page promo
Plus de sujets relatifs à : [RESOLU]INSER INTO si données différentes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR