ca veut rien dire (req VBA)

ca veut rien dire (req VBA) - VB/VBA/VBS - Programmation

Marsh Posté le 18-10-2006 à 16:51:51    

bonjour à tous,  
 
Deux questions sur le petit pavé de code ci dessous : (moi à mon avis ca veut rien dire mais si vous pouviez me le confirmer).
 
Soit une table "Jointure_temp2" créée à partir de la table Jointure_temp. Mais deux questions sur les conditions :  
1.  "where (JOINTURE_TEMP.ETAT NOT IN ('05 - Annulé sans suite')) OR (JOINTURE_TEMP.ETAT IN ('05 - Annulé sans suite') :  ca c bien égal à ne rien faire du tout non ?
 
2 . (JOINTURE_TEMP.[Date dernier traitement]<JOINTURE_TEMP.JR &'/'& JOINTURE_TEMP.MOISREG &'/' & Right(" & annee & ",2) ));" ) : ou date dernier traitement en jj/mm/aaaa. On peut comparer du jj/mm/aaaa et du jj/mm/aa ?? ou cela présente une utilité quelconque ?  
 
En tout cas il se passe bien qqchose entre mes deux bases acces puisque quelques tests me confirme que le nombre de ligne varie entre Jointure_temp et jointure_Temp2.
 
la requete complete :  
 

Code :
  1. Set Myquery = MyDB.CreateQueryDef("", "select * into JOINTURE_TEMP2 FROM JOINTURE_TEMP " _
  2. & "where (JOINTURE_TEMP.ETAT NOT IN ('05 - Annulé sans suite')) OR (JOINTURE_TEMP.ETAT IN ('05 - Annulé sans suite')  " _
  3. & "AND (JOINTURE_TEMP.[Date dernier traitement]<JOINTURE_TEMP.JR &'/'& JOINTURE_TEMP.MOISREG &'/' & Right(" & annee & ",2) ));" )
  4. Myquery.Execute


 
Par avance merci pour votre aide.
 

Reply

Marsh Posté le 18-10-2006 à 16:51:51   

Reply

Marsh Posté le 18-10-2006 à 21:33:54    

cocal a écrit :

bonjour à tous,  
 
Deux questions sur le petit pavé de code ci dessous : (moi à mon avis ca veut rien dire mais si vous pouviez me le confirmer).
 
Soit une table "Jointure_temp2" créée à partir de la table Jointure_temp. Mais deux questions sur les conditions :  
1.  "where (JOINTURE_TEMP.ETAT NOT IN ('05 - Annulé sans suite')) OR (JOINTURE_TEMP.ETAT IN ('05 - Annulé sans suite') :  ca c bien égal à ne rien faire du tout non ?
 
2 . (JOINTURE_TEMP.[Date dernier traitement]<JOINTURE_TEMP.JR &'/'& JOINTURE_TEMP.MOISREG &'/' & Right(" & annee & ",2) ));" ) : ou date dernier traitement en jj/mm/aaaa. On peut comparer du jj/mm/aaaa et du jj/mm/aa ?? ou cela présente une utilité quelconque ?  
 
En tout cas il se passe bien qqchose entre mes deux bases acces puisque quelques tests me confirme que le nombre de ligne varie entre Jointure_temp et jointure_Temp2.
 
la requete complete :  
 

Code :
  1. Set Myquery = MyDB.CreateQueryDef("", "select * into JOINTURE_TEMP2 FROM JOINTURE_TEMP " _
  2. & "where (JOINTURE_TEMP.ETAT NOT IN ('05 - Annulé sans suite')) OR (JOINTURE_TEMP.ETAT IN ('05 - Annulé sans suite')  " _
  3. & "AND (JOINTURE_TEMP.[Date dernier traitement]<JOINTURE_TEMP.JR &'/'& JOINTURE_TEMP.MOISREG &'/' & Right(" & annee & ",2) ));" )
  4. Myquery.Execute


 
Par avance merci pour votre aide.


1. En fait il me semble que tu interprètes incorrectement la commande complète :
select * into JOINTURE_TEMP2 FROM JOINTURE_TEMP where (JOINTURE_TEMP.ETAT NOT IN ('05 - Annulé sans suite')) OR (JOINTURE_TEMP.ETAT IN ('05 - Annulé sans suite')  AND (JOINTURE_TEMP.[Date dernier traitement]<JOINTURE_TEMP.JR &'/'& JOINTURE_TEMP.MOISREG &'/' & Right(" & annee & ",2) ));
Tu as deux clauses principales séparées par un "OR". Le "AND" est partie intégrante d'une "sous-clause".
En gros,  
soit tu as JOINTURE_TEMP.ETAT NOT IN ('05 - Annulé sans suite')
soit si la condition ci-dessus est fausse, i.e. JOINTURE_TEMP.ETAT IN ('05 - Annulé sans suite') alors une deuxième condition doit être remplie JOINTURE_TEMP.[Date dernier traitement]<JOINTURE_TEMP.JR &'/'& JOINTURE_TEMP.MOISREG &'/' & Right(" & annee & ",2) )
Donc il est normal que ta requête puisse retourner des résultats.
2. Pour les dates, ça dépend des BDD, mais ça ne m'étonne pas plus que ça que les AAAA puissent être comparés aux AA.


---------------
"Mon modèle, c'est moi-même."
Reply

Marsh Posté le 19-10-2006 à 18:34:10    

merci beaucoup ! (plus que 200 pages de codes à comprendre :))
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed