こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ASP(VBScript)からACCESSデータベースを操作

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句の中に入ったらエラーになります。
何が原因なのか全く分からず、困っております。
対処法をご存知の方がいらっしゃいましたら、ご教授ください。
宜しくお願い致します。

投稿日時 - 2008-06-12 01:03:06

QNo.4093896

すぐに回答ほしいです

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

こんにちは 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 だから

投稿日時 - 2008-06-12 12:34:05

お礼

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

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

> type=ture → type=true だから

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

投稿日時 - 2008-06-12 23:42:42

ANo.2

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

Rel

はじめまして

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

今後どんなエラーが出るか判らないので、名前変更が良いと思いますが...

投稿日時 - 2008-06-12 09:46:58

お礼

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

投稿日時 - 2008-06-12 10:52:48

あなたにオススメの質問