Date = null !!!

Ant8386 Messages postés 36 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 16 mai 2006 - 4 juil. 2005 à 17:48
fg10 Messages postés 34 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 24 mai 2010 - 4 juil. 2005 à 19:00
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

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 juil. 2005 à 18:58
Salut
Ton champ TB2 accepte les valeurs nulles (il faut que).
Pour insérer une valeur nulle dans un champ, je pense qu'il ne faut pas d'encadrement ' ou #
Donc, il faut que tu testes en VB si le champ est nul :
If IsNull(rst.Fields("MA_DATE")) Then
strSQL = strSQL & rst.Fields("MA_DATE")
Else
strSQL = strSQL & "'#" & rst.Fields("MA_DATE") & "#')"
End If

Essaye voir

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
(je
0
fg10 Messages postés 34 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 24 mai 2010 1
4 juil. 2005 à 19:00
Do While Not rst.EOF

strSQL = "INSERT INTO TB2(AUTRE_DATE) VALUES("
strSQL = strSQL & "'#" & rst.Fields("MA_DATE") & "#')"
if not isnull rst.fields("Ma_date") then
db.Execute strSQL
endif
rst.MoveNext

Loop
0
Rejoignez-nous