タイトル : EXCEL シートをレコードセットで取りこめない 投稿日 : 2020/07/09(Thu) 20:33 投稿者 : 悩めるEXCELマクロ士
いつもお世話になっています。 早速ですが、質問です。 以前にも投稿させていただきましたが 私は、現在EXCELVBAでアプリを作成しています。 そのとき、EXCELシートをレコードセットで 取り込む方法をご教授いただき順調に開発が 進んでいたんですが、最近になって新たな機能追加が 発生して、シートからデータを取得する必要が出たため すでに開発済みで動作確認済みのシートデータを レコードセットで取得する関数を使って取り込もうと 思ったのです。 いざ、取り込もうと思って実行したところ 『抽出条件でデータ型が一致しませんでした』と エラーが出てレコードセットを取得することが 出来ませんでした。 それまで、開発してあるプロシージャからだったら 今も問題なく、シートからレコードセット経由で データを取得できるんですが、新しく開発したほうからは どうしてもだめでした。 ただ、わからないのはSQL文に関しては取得できる ものと全く同じものが生成されるのでそれで取得できないのは なぜ?という疑問に陥ってしまっています。 その後、いろいろと試行錯誤して原因はどうやらWHERE句に あるようで、 取得できる法のSQLでは、 [SELECT * FROM (シート名&取得エリア) WHERE CD = '検索対象CD']と なっているのを [SELECT * FROM (シート名&取得エリア) WHERE CD = 検索対象CD]と 修正すると取得できます。 なぜそうなるのかと、対応方法をご教授いただけると幸いです。 現在は、フラグを使ってダメなほうからCallした時には シングルコーテーションを付けないWHERE句を作成する法に誘導していますが これだと、シートにデータが追加になった時などに対応できない 可能性があるので、どちらからでも同じWHERE句で取得できるように したいです。 乱文、長文になってしまって申し訳ありませんが よろしくお願いします。 |