フィールドを新しいテーブルにコピーし、_New
テーブルから元のテーブルに移動するコードを実行しようとしています。クエリの "Null"値
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)
ログは、一緒に投げたクラスモジュールのほんの一握りの手順です。エラー時にその出力は
@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.
である私はTName
とSQLStatement
は、SQL操作が実行された時点で有効な文字列の両方であることを確認することができ、そしてソース(レコードとRecords_New)は両方とも有効であること。 Option Explicit
は、ファイルの他の場所に設定され、誤植を避けることができます。エラーはDoCmd
行にスローされます。
DoCmd.RunSQL
は値を返さないのに、なぜNull
という値になりますか?
それが上のエラーを投げている何行? "option explicit"をコードの先頭に追加して、まだコンパイルされているかどうか確認できますか? – JohnFx
質問に回答するための情報を追加しました。 –
クエリをコード内で直接実行しようとしましたか。それは問題を明らかにするかもしれない。 – JohnFx