アプリ版:「スタンプのみでお礼する」機能のリリースについて

WEBページのフォームに入力された値からクエリを組み立てて、ASP(VBScript)からAccessデータベースのデータを表示させるWEBアプリケーションを作っているのですが、WHERE句に特定のフィールドが入った時にだけ、必ずエラー終を起こしてしまい、困っています。

ID
address
first_name
last_name
department
section
group
type

というフィールドがあって、typeはブール型、IDは数値型、それ以外はテキスト型です。
例えば、

SELECT * FROM memberlist WHERE type=true AND department='営業部' AND first_name LIKE '%山%' ORDER BY ID

なら、営業部で苗字に「山」を含むレコードが取得できますが、

SELECT * FROM memberlist WHERE type=ture AND section='営業推進課' ORDER BY ID
や、
SELECT * FROM memberlist WHERE type=true AND group='管理係' ORDER BY ID
など、section と group のフィールドがWHERE句の中に入ったらエラーになります。
何が原因なのか全く分からず、困っております。
対処法をご存知の方がいらっしゃいましたら、ご教授ください。
宜しくお願い致します。

A 回答 (2件)

こんにちは ANo.1です



>Accessの予約語ということでしょうか?
http://support.microsoft.com/kb/286335/ja
これ↑ によると
「section」「group」「type」は予約語でしょうか?

>予約語の可能性も考えて、フィールド名変更も試したのですが、うまくいきませんでした

うーん、私の環境では、動くんだけど ^^;

とりあえず、これ↓は動かないけど ^^
>SELECT * FROM memberlist WHERE type=ture AND section='営業推進課' ORDER BY ID

type=ture → type=true だから
    • good
    • 0
この回答へのお礼

こんばんは。
ご回答ありがとうございます。

確かに、リストの中にありますね。
勉強不足ですみません。

> type=ture → type=true だから

これは転記ミスでした。
とりあえず、現在は問題なく動いている様子ですので、質問は締め切りとして、勉強することにしたいと思います。
ありがとうございました。

お礼日時:2008/06/12 23:42

はじめまして



Access の予約語でしょうか?

フィールドの「group」、「section」の名前を変えてみたらどうでしょう?

または、[]でくくるとか?

SELECT * FROM memberlist WHERE type=ture AND [section]='営業推進課' ORDER BY ID
SELECT * FROM memberlist WHERE type=true AND [group]='管理係' ORDER BY ID

今後どんなエラーが出るか判らないので、名前変更が良いと思いますが...
    • good
    • 0
この回答へのお礼

ありがとうございます。
予約語の可能性も考えて、フィールド名変更も試したのですが、うまくいきませんでした。
ご回答の通り、[]でくくるとエラーを起こさず、レコードを取得できました。
[]でくくらなかった場合に表示されるエラーですが、
エラー:80004005
と表示されるだけです。
[]でくくるとうまくいったということは、やはりAccessの予約語ということでしょうか?

お礼日時:2008/06/12 10:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!