J'essaie d'exécuter du code qui copiera les champs dans une nouvelle table, en les déplaçant d'une table _New
à la table d'origine. Le code VBA qui fait cela fonctionne en tant que tel:Valeur "Null" dans les requêtes
SQLStatement = CStr("INSERT INTO " & TName & " SELECT * FROM " & TName & "_New")
Log.WriteLine "Running query with string """ & SQLStatement & """ "
QueryTimer = Timer
DoCmd.RunSQL SQLStatement
Log.WriteLine "Query time: " & (Timer - QueryTimer)
Le journal est juste une poignée de procédures dans un module de classe I jeté ensemble. Sa sortie sur l'erreur est
@142921: Running query with string "INSERT INTO Records SELECT * FROM Records_New"
@142941: Error Date/Time: 7/21/2009 2:29:40 PM
@142941: Error # & Description: 3162, You tried to assign the Null value to a variable that is not a Variant data type.
Je peux confirmer que TName
et SQLStatement
sont les deux chaînes valides au moment de l'opération SQL est exécutée, et que les sources (Donnés et Records_New) sont valides. Option Explicit
est défini ailleurs dans le fichier pour éviter toute confusion due aux fautes de frappe. L'erreur est renvoyée sur la ligne DoCmd
.
Pourquoi cela aurait-il une valeur de Null
, même si DoCmd.RunSQL
ne renvoie pas de valeur?
Quelle ligne est-il jeter l'erreur? Pouvez-vous essayer d'ajouter "option explicite" en haut de votre code et voir si elle compile encore? – JohnFx
Ajout d'informations pour répondre à vos questions. –
Avez-vous essayé d'exécuter la requête directement (en dehors de votre code). Cela pourrait éclairer le problème. – JohnFx