VBScript
VBA
error

VBSにてエラー[列名 'XXXXX' が無効です。][80040E14]が発生した時の対処結果

DBに接続して、何やかんや処理をするVBSを作成中に以下のエラーが発生した。
'FA8'それは、列名じゃない値だ。

エラー資料.png

エラー:[Microsoft][ODBC SQL Server Driver][SQL Server]列名 'FA8' が無効です。
コード:80040E14
ソース:Microsoft OLE DB Provider for ODBC Drivers

※ファイルパスの部分は加工してあります。

問題の55~56行目を抜粋

 query = "SELECT count(*) FROM tbl_ak WHERE tf_code LIKE """ & TFCode & """"  
 Set countTF = objADO.Execute(query) 

何がしたかったかというと、
テーブル[tbl_ak]の列[tf_code]が値[FA8]に一致する件数を取得したかった。
※エラー発生時TFCodeには文字列"FA8"が入っている。

どうしたか(解決方法)

 query = "SELECT count(*) FROM tbl_ak WHERE tf_code LIKE '" & TFCode & "'"  
 Set countTF = objADO.Execute(query)  

ダブルクォーテーションをシングルクォーテーションに変更した。
たった、それだけなのだがエラーメッセージでは画像の通り、'FA8'とシングルクォーテーションで正しく
囲っているように見えてしまい、原因の特定に時間が掛ってしまった。
エラーコード等でググっても、なかなか分からなかったので、ここに書き留めておく。