VBScript を使用して .xls スプレッドシートをクエリしようとしていますが、フィールドをキャストしようとしたときに問題が発生しました。
このようにスプレッドシートに接続します。
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DataSource & ";Extended Properties=""Excel 8.0;HDR=No;"";"
次に、スプレッドシートにクエリを実行しようとします。関心のあるフィールドには 10 進数値が含まれていますが、ワイルドカードとして * を含めることもできます。だから私がやろうとしているのは、フィールドを varchar にキャストして、* をチェックできるようにすることです。
Set objRecordset = CreateObject("ADODB.Recordset")
StrQuery = "SELECT * FROM [Sheet1$] WHERE F1 >= 2.3456 OR CAST(F1 AS VARCHAR) = '*'"
objRecordset.Open StrQuery, objConnection, adOpenDynamic, adLockOptimistic
これにより、未特定のエラー 80004005 が発生します。
注: CONVERT も試しましたが、未定義関数エラーが発生しました。