• ベストアンサー

SQLの条件分に ( ) が入っている場合

Access97を使用しています。 SQLの条件で、項目名に '(' が入っている場合 どうすればいいのでしょうか? 例えば 下記の場合 " 式に未定義関数 '出荷日'があります " と出てきます。 Set DB = CurrentDb() strSQL = "SELECT SUM(数量) AS A FROM GAH100 WHERE " strSQL = strSQL + "出荷日(新)='" & Me.日付入力 "';" Set RS = DB.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly) 項目名に() が無いようにするしかないのでしょうか?

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

  • ベストアンサー
  • nek
  • ベストアンサー率34% (46/135)
回答No.3

対象のフィールド名の前後を "[" and "]" (括弧)で囲めばいいと思いますが 確認はしておりませんが、やってみてください。 Set DB = CurrentDb() strSQL = "SELECT SUM(数量) AS A FROM GAH100 WHERE " strSQL = strSQL + "[出荷日(新)]='" & Me.日付入力 "';" Set RS = DB.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly)

cdma
質問者

お礼

ありがとうございました。 上手くいきました。

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 >リンクして使っているデータで、元データの >項目を変更するのは難しいのです。 それなら、テーブル構造がまったく同じの別のテーブルを作っておいて、まずそこへリンクテーブルのデータをコピーして、そのテーブルで操作すればいいのではないでしょうか。 もちろん、その別テーブルのフィールド名は、"()"など、やばそうな文字を使用していないものにして下さい。

cdma
質問者

お礼

ありがとうございます。 その方法で実施してみます。 また他に案があればお願いします。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

あとあと いろいろとややこしくなると思いますので、 ()は はずしたほうがいいと思いますよ。

cdma
質問者

お礼

回答ありがとうございます。 リンクして使っているデータで、元データの 項目を変更するのは難しいのです。 ()が残ることを前提に別案を考えたいと思います。

関連するQ&A