• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel:SQL実行関数のエラー原因を知るには?)

Excel: SQL実行関数のエラー原因を知るには?

このQ&Aのポイント
  • ExcelでSQL実行関数のエラーが発生し、パラメーターが少なすぎるというエラーメッセージが表示されています。
  • 作成している関数はDBLookup()とCnnExecute()で、どちらも一度は正常に動作しましたが、再度実行するとエラーが発生しました。
  • 質問者はエラーの原因を特定できず、他の人のアドバイスを求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • mabyos
  • ベストアンサー率52% (61/117)
回答No.1
f_a_007
質問者

お礼

 回答ありがとうございます。昨晩の23時頃に、私も紹介のサイトを発見。で、全く、同じエクセルを再現してテスト。すると、OK。だが、再テスト用のエクセルではエラー発生。つまり、同記事の言う通りでした。 対策1、接続拡張プロパティも指示する。 対策2、SQL文からミスを追放する。 ・ヘッダーの有無の指示・・・・・・・・・・・DBLookup()に1行追加 ・テーブル構造のデータの位置と範囲の指定・・SQL文を適正化  ここ過程で、 DBLookup() cnn.Provider = "MSDASQL" ‥‥ BLookup() cnn.Provider = "Microsoft.ACE.OLEDB.12.0" ‥‥ と、DLookup()も作成。で、どちらともに、同じ現象であることも確認。もって、接続設定ではなくて紹介サイトの指摘通りとの確信を深めつつあります。  なお、質問は、午後20時に削除を試みたのですが、いわゆる《設定》ボタンを見つけられずに放置した次第です。ご迷惑をおかけしました。

その他の回答 (1)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

MsgBox (DBLookup("select 読み from [Sheet1$B2:Z123] where 顧客名='鈴木 一郎'")) とするか、 Sheet1のA列と1行目を削除することで改善しませんでしょうか?

f_a_007
質問者

お礼

回答ありがとうございます。先のお礼に書いた通りです。 HohoPapaさんの指摘の通り。原因は、2つでした。拡張プロパティでヘッダの有無をちゃんと宣言し、かつ、 [Sheet1$B2:Z123]とデータ領域も指定することで解決するようです。 しかし、20年振りのVBA関数への挑戦。70歳なのに、ちょっと胸が躍っています。なお、ベストアンサーは、トップの方にしますが悪しからず・・・。

関連するQ&A