date nulle !

date nulle ! - VB/VBA/VBS - Programmation

Marsh Posté le 04-07-2005 à 17:51:07    

Bonsoir  
 
Je souhaite insérer dans un champ date de type date (AUTRE_DATE) d'une table Access (TB2) le résultat d'un recordset qui sélectionne des dates (MA_DATE) dans une autre table (TB1)...
Problème quand le recordSet rst.Fields("MA_DATE" ) renvoie Null, je me prend l'erreur suivante sur la ligne db.Execute strSQL :
"Type de données incompatible dans l'expression du critère"
 
Voici mon code :
__________________________________________________________________
Set rst = db.Execute("SELECT MA_DATE FROM TB1" )
 
Do While Not rst.EOF
     
    strSQL = "INSERT INTO TB2(AUTRE_DATE) VALUES("
    strSQL = strSQL & "'#" & rst.Fields("MA_DATE" ) & "#')"
         
    db.Execute strSQL
         
    rst.MoveNext
             
Loop
__________________________________________________________________
 
J'ai bien essayé en mettant Nz mais rien n'y fait. Avez vous une idée ?
 
Merci
 

Reply

Marsh Posté le 04-07-2005 à 17:51:07   

Reply

Marsh Posté le 04-07-2005 à 20:15:04    

Bonsoir,
 
Essaye éventuellement cette solution (sans passer par un recordset) :
 

Code :
  1. strSQL = "INSERT INTO TB2(AUTRE_DATE) SELECT MA_DATE FROM TB1"
  2. db.Execute strSQL


 
pelw

Reply

Marsh Posté le 05-07-2005 à 08:42:01    

c pas possible ça...
Pourquoi ? Parceque dans l'exemple que je vous donne j'ai juste mis la ligne où ça coince mais en réalité j'ai tout un tas de valeur du recordset à insérer avec ma req INSERT donc le INSERT INTO SELECT c'est fichu...
Merci quand même. C'est sympa d'avoir répondu, c'est si rare ces temps-ci

Reply

Marsh Posté le 05-07-2005 à 17:12:42    

Pourquoi tu ne fais pas une condition (je ne sais pas si c'est possible..)
Do While Not rst.EOF  
    if rst.fields("MA_DATE" ) is not null then  
       strSQL = "INSERT INTO TB2(AUTRE_DATE) VALUES("  
    strSQL = strSQL & "'#" & rst.Fields("MA_DATE" ) & "#')"  
         
          db.Execute strSQL  
         end if
         
    rst.MoveNext  
             
Loop  

Reply

Sujets relatifs:

Leave a Replay

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