- ベストアンサー
テーブルへのデータ投入について。
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テーブル; としたら、エラーがおきますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
使っているDBはAccessですか? 「パラメータが少なすぎます。1を指定してください。」 このメッセージはパラメータクエリにパラメータを与えないで実行すると、表示されます。 予約語、組み込み関数、管理下にあるテーブル名、フィールド名以外のシンボルは 全てパラメータとみなされます。大抵の場合はSQL文の誤りで、存在しない フィールドを記述したりすると、この状況になります。もう一度、SQL文を点検してみて下さい。
その他の回答 (2)
- bin-chan
- ベストアンサー率33% (1403/4213)
列AA~AZということは、列ASが存在する。 列名としてのASなのか、エイリアス指定のための as なのか、混乱が生じているのでは?
- bin-chan
- ベストアンサー率33% (1403/4213)
登場しない列(例:AB等)に NOT NULL 属性などがの制約が無ければ大丈夫かな。
補足
早速のご回答有り難う御座います。 現在、「パラメータが少なすぎます。1を指定してください。」 というエラーになるので、 VBAコード上ではなく、クエリの作成画面に SQLを入力し、作成しようとするとパラメータ入力の画面が 表示されます。ここで条件指定している値を入力すると、 追加しようとしてくれるのですが。 元データの中に抽出条件に一致するものがないと、 「パラメータが少なすぎます。1を指定してください。」のエラーが でる原因になりますか?
お礼
有り難う御座います。 SQL文に間違いがありました。 訂正したらうまく出来るようになりました。