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

ABCテーブルにAAからAZまでのフィールドがあります。
ここに、XYZテーブルのデータを入れたいのですが、
XYZテーブルには、AA・AE・AG・AH・AMの5つのフィールドしかありません。

この場合、
insert into ABCテーブル (AA,AE,AG,AH,AM)
select XYZテーブル.AA,XYZテーブル.AE,XYZテーブル.AG,
XYZテーブル.AH,XYZテーブル.AM
from XYZテーブル;

としたら、エラーがおきますか?

A 回答 (3件)

使っているDBはAccessですか?


「パラメータが少なすぎます。1を指定してください。」
このメッセージはパラメータクエリにパラメータを与えないで実行すると、表示されます。
予約語、組み込み関数、管理下にあるテーブル名、フィールド名以外のシンボルは
全てパラメータとみなされます。大抵の場合はSQL文の誤りで、存在しない
フィールドを記述したりすると、この状況になります。もう一度、SQL文を点検してみて下さい。
    • good
    • 0
この回答へのお礼

有り難う御座います。

SQL文に間違いがありました。
訂正したらうまく出来るようになりました。

お礼日時:2008/05/12 11:20

列AA~AZということは、列ASが存在する。


列名としてのASなのか、エイリアス指定のための as なのか、混乱が生じているのでは?
    • good
    • 0

登場しない列(例:AB等)に NOT NULL 属性などがの制約が無ければ大丈夫かな。

この回答への補足

早速のご回答有り難う御座います。

現在、「パラメータが少なすぎます。1を指定してください。」
というエラーになるので、
VBAコード上ではなく、クエリの作成画面に
SQLを入力し、作成しようとするとパラメータ入力の画面が
表示されます。ここで条件指定している値を入力すると、
追加しようとしてくれるのですが。

元データの中に抽出条件に一致するものがないと、
「パラメータが少なすぎます。1を指定してください。」のエラーが
でる原因になりますか?

補足日時:2008/05/09 11:23
    • good
    • 0

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