プロが教えるわが家の防犯対策術!

ACCESS2000を使用しています。

クエリをデザインビューから作成し、SQLビューで確認すると、例えば、

SELECT [test].[日付],[test].[トップ] FROM test;

というような文章が作成されますが、ここで手動でSQL文に

SELECT 日付,トップ FROM test;

というふうに変更して実行した場合、[]を外したことによってエラーとなってしまう列が発生します。このエラーになる列とならない列が発生する原因をどなたかご存知ないでしょうか?

ACCESSをデータベースとして他ツールによってデータを引き出すんですが、SQL文は自動作成されるので手で[]を入力しなければならないんです。

以上、よろしくお願いします。

A 回答 (4件)

その他ツールの予約語を列名に指定するとエラーになってしまいます。

予約語を列名と認識させるのに[]を使うわけです。
ASPでアクセスする場合はASPの組み込みオブジェクトであるUserやServerやItem等がこれに相当します。

この回答への補足

回答ありがとうございます。
実際の列名を挙げますと、エラーの出る列名が”1位”、”2位”で出ないのが”日付”、”順位”です。
hidebu-さんに指摘されていろいろ試してみたところ、エラーの出ない列にはSQLビューに変換した際、[]がつけられていないことに気づきました。
おそらく、hidebu-さんの内容で間違いないと思います。
ただ、”1位”、”2位”というのが予約語になるんでしょうか?数字が入っているからなんでしょうかね?

補足日時:2003/01/15 21:20
    • good
    • 0

>ただ、”1位”、”2位”というのが予約語になるんでしょうか?数字が入っているからなんでしょうかね?



数字が入っているからではなく、先頭が数字だからです。

他には、演算子となりうる文字+、-、*、/、が含まれていたり、(や、)、の括弧、その他の記号を使っていたりすると[]でくるむ必要があります。
    • good
    • 0
この回答へのお礼

なるほど、解りました。
ありがとうございます。

お礼日時:2003/01/16 09:01

テーブルをひとつしか使わない場合は、エラーにならないでしょう。


テーブルがひとつだけ、たとえば test のテーブルだけでもエラーが出る場合があったら、教えてください。

この回答への補足

回答ありがとうございます。
驚きのようですが、1つのテーブルを使用しているのにホントにエラーが出てしまうんです。
もし、お時間がございましたらいろいろ検証していただけますか?

補足日時:2003/01/15 21:10
    • good
    • 0

クエリで2つ以上のテーブルを結合している場合、


両方に同じ列名が存在するときにテーブル名を指定しないと
エラーになります。

どのようなエラーが出るのかわかれば解決につながるのですが
とりあえず、考えられるのはこんなことです。

この回答への補足

回答ありがとうございます。
エラ-の内容は”演算子がありません"です。
あと、クエリ元のテーブルは1つのテ-ブルです。

補足日時:2003/01/15 21:04
    • good
    • 0

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