• ベストアンサー

EXCEL2003 VBAでのSQL文について

「'#'付近に不適切な構文があります。」 というエラーが出ます。 ソースは以下の通りです。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Set cn = CreateObject("ADODB.Connection") cn.CommandTimeout = 0 cn.Open SRC_SQL Dim dateTarget_s As Date Dim dateTarget_e As Date dateTarget_s = CDate(Format$(dateTarget, "yyyy/mm/dd")) dateTarget_e = CDate(Format$(DateAdd("m", 1, dateTarget), "yyyy/mm/dd")) '指定年月(全て) strSql = "SELECT SUM(現金金額), SUM(クレジット金額), SUM(割引金額), SUM(出庫台数)" strSql = strSql & " FROM " & TBL_TEST strSql = strSql & " WHERE 物件NO = '" & p_strBukNo & "'" strSql = strSql & " AND 日付 >= #" & dateTarget_s & "#" strSql = strSql & " AND 日付 < #" & dateTarget_e & "#" Set rs = CreateObject("ADODB.Recordset") rs.Open strSql, cn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - どこがおかしいでしょうか? イミディエイトウィンドで見る限りは、私には原因がわかりませんでした。 よろしくお願いします。

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

  • ベストアンサー
  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.2

接続しているデータベースは何? SQL Server なら strSql = strSql & " AND 日付 >= '" & dateTarget_s & "'" ですが。

motsu2006
質問者

お礼

SQL Serverです。 解決しました! ありがとうございました。

その他の回答 (1)

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

こんちは。 >>イミディエイトウィンドで見る限りは、私には原因がわかりませんでした。 まぁ、VBA利用者じゃないので若干のズレはあるかもしれませんが。。。 >>rs.Open strSql, cn の直前で処理停止させて、「strSql」の中身確認しました? 不適切な構文があります。 って事は、とりあえず、簡単に考えるとSQL文の生成が間違えてるって事でしょうけど。 変数の中身がどうなってるのかこちらには分からないので、「strSql」の中身確認してみてはどうでしょうか。としか言えませんかね。

motsu2006
質問者

補足

早速のご回答、ありがとうございます。 ちなみに、イミディエイトで見たstrSqlの中身は以下の通りです。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SELECT SUM(現金金額), SUM(クレジット金額), SUM(割引金額), SUM(出庫台数) FROM TBL_TEST WHERE 物件NO = 'XXXXXXXXXX' AND 日付 >= #2007/09/01# AND 日付 < #2007/10/01# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -