none
Visual Vasic での記述エラーが起きる原因がわかりません RRS feed

  • 質問

  • 何が悪いのか、さっぱりわかりません。
    どなたか、教えて下さい。

    「SQLビューの記述」
    SELECT 総勘定元帳.勘定科目, Format([日付],"yyyy/mm") AS 年月, 勘定科目グループ.グループ名,
    [借方(合計)]-[貸方(合計)] AS [借方(残高)], 0 AS [貸方(残高)], Sum(総勘定元帳.借方) AS [借方(合計)],
    Sum(総勘定元帳.貸方) AS [貸方(合計)]
    FROM (勘定科目グループ LEFT JOIN 勘定科目 ON 勘定科目グループ.グループ = 勘定科目.グループ) LEFT JOIN 総勘定元帳
    ON 勘定科目.勘定科目 = 総勘定元帳.勘定科目
    WHERE (((総勘定元帳.摘要欄)<>"翌期への繰越分(資産・負債・資本)用"))
    GROUP BY 総勘定元帳.勘定科目, Format([日付],"yyyy/mm"), 勘定科目グループ.グループ名
    HAVING (((総勘定元帳.勘定科目) Like "1*") AND ((Format([日付],"yyyy/mm"))=[年月]))
    ORDER BY 総勘定元帳.勘定科目;

    「Visual Vasic の記述」
       Set INP1 = DB.OpenRecordset("SELECT 総勘定元帳.勘定科目, " _
                                 & "Format([日付]," _
                                 & "yyyy/mm" _
                                 & ") AS 年月, " _
                                 & "勘定科目グループ.グループ名, " _
                                 & "[借方(合計)]-[貸方(合計)] AS [借方(残高)], " _
                                 & "0 AS [貸方(残高)], " _
                                 & "Sum(総勘定元帳.借方) AS [借方(合計)], " _
                                 & "Sum(総勘定元帳.貸方) AS [貸方(合計)] " _
                                 & "FROM (勘定科目グループ LEFT JOIN 勘定科目 ON
    勘定科目グループ.グループ = 勘定科目.グループ) " _
                                 & "LEFT JOIN 総勘定元帳 ON 勘定科目.勘定科目 = 総勘定元帳.勘定科目 " _
                                 & "WHERE (((総勘定元帳.摘要欄) <> " _
                                 & "翌期への繰越分(資産・負債・資本)用" _
                                 & ")) " _
                                 & "GROUP BY 総勘定元帳.勘定科目, Format([日付]," _
                                 & "yyyy/mm" _
                                 & "), 勘定科目グループ.グループ名 " _
                                 & "HAVING (総勘定元帳.勘定科目 Like " _
                                 & "1*" _
                                 & " And Format([日付], " _
                                 & "yyyy/mm" _
                                 & ") = '" & PARA1 & "') " _
                                 & "ORDER BY 総勘定元帳.勘定科目;")

    「エラーメッセージ」
    実行時エラー’3075’
    クエリ式 '(総勘定元帳.勘定科目 LIKE 1* AND Format([日付],yyyy/mm)=
    '2009/10')' の 構文エラー:演算子がありません。
    2009年10月3日 2:45

回答

  • SQLクエリ中のダブルクォートが消えてますよ。

    VBの文字列中では、ダブルクォートは""であらわすので、
                                 & " And Format([日付], " _
                                 & "yyyy/mm" _
                                 & ") = '" & PARA1 & "') " _
    たとえば、ここらは、
                                 & " And Format([日付], " _
                                 & """yyyy/mm""" _
                                 & ") = '" & PARA1 & "') " _
    となります。

    jzkey
    2009年10月3日 3:13
  • 回答ではありませんが、SQLインジェクションがありますので、文字列でSQLを組み立てるのはお勧めできません。パラメータを使うようにして下さい。
    お使いの環境がよくわかりませんが、例えば以下が参考になります。

    Item プロパティの例 (VB)
    http://msdn.microsoft.com/ja-jp/library/cc364172.aspx
    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    2009年10月3日 12:39
    モデレータ

すべての返信

  • SQLクエリ中のダブルクォートが消えてますよ。

    VBの文字列中では、ダブルクォートは""であらわすので、
                                 & " And Format([日付], " _
                                 & "yyyy/mm" _
                                 & ") = '" & PARA1 & "') " _
    たとえば、ここらは、
                                 & " And Format([日付], " _
                                 & """yyyy/mm""" _
                                 & ") = '" & PARA1 & "') " _
    となります。

    jzkey
    2009年10月3日 3:13
  • ありがとうございました。
    おかげさまで、進展がありました。
    2009年10月3日 4:06
  • 回答ではありませんが、SQLインジェクションがありますので、文字列でSQLを組み立てるのはお勧めできません。パラメータを使うようにして下さい。
    お使いの環境がよくわかりませんが、例えば以下が参考になります。

    Item プロパティの例 (VB)
    http://msdn.microsoft.com/ja-jp/library/cc364172.aspx
    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    2009年10月3日 12:39
    モデレータ
  • こんにちは、フォーラムオペレーターの高橋春樹です。

    jzkeyさん、trapemiyaさん、いつもお世話になっております。

    アツシさん、初めまして。
    MSDNフォーラムのご利用ありがとうございます。

    jzkeyさんのアドバイスがお役にたったようで良かったです。
    trapemiyaさんのアドバイスも参考にしてくださいね(^-^)

    今回、皆様からの投稿が有用な情報だと思いましたので、
    勝手ながら、回答マークを付けさせてもらいました。

    もし、問題が解決していない場合は、詳しい状況をお伝えして頂ければと思います。

    今後ともMSDNフォーラムをよろしくお願いします。


    マイクロソフト株式会社 フォーラム オペレーター 高橋春樹
    2009年10月13日 8:30