■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#1885-1パラメータが少なすぎます。Helpme2002-07-19(金) 03:40
     #1887-1RE#1885:パラメータが少なすぎます。Say2002-07-19(金) 03:52
     #1888-1RE#1887:パラメータが少なすぎます。皮算用2002-07-19(金) 04:01
     #1894-1RE#1888:パラメータが少なすぎます。Helpme2002-07-19(金) 04:42
     #1896-1RE#1894:パラメータが少なすぎます。Say2002-07-19(金) 04:49
     #1897-1RE#1896:パラメータが少なすぎます。Helpme2002-07-19(金) 04:57
     #1899-1RE#1897:パラメータが少なすぎます。Say2002-07-19(金) 05:00
     #1901-1RE#1899:パラメータが少なすぎます。Helpme2002-07-19(金) 05:43
     #1902-1RE#1901:パラメータが少なすぎます。皮算用2002-07-19(金) 06:17
     #1903-1RE#1902:パラメータが少なすぎます。Helpme2002-07-19(金) 06:20
     #1904-0RE#1903:パラメータが少なすぎます。皮算用2002-07-19(金) 06:28
     #1905-1RE#1901:パラメータが少なすぎます。レベル112002-07-19(金) 06:46
     #1907-1RE#1901:パラメータが少なすぎます。匿名19072002-07-19(金) 06:47
     #1908-1RE#1904:パラメータが少なすぎます。Helpme2002-07-19(金) 06:47
     #1909-1RE#1908:パラメータが少なすぎます。匿名19092002-07-19(金) 06:57
     #1910-1RE#1909:パラメータが少なすぎます。皮算用2002-07-19(金) 07:00
     #1911-1RE#1909:パラメータが少なすぎます。Helpme2002-07-19(金) 07:36
#1885-1
パラメータが少なすぎます。
はじめまして!! Helpmeです。
今VBでプログラムを作成中なのですが、どうしても直らないエラーに遭遇してしまいました。
そのエラーというのは、プログラムを実行したときSQL文の場所で「パラメータが少なすぎます。1を
指定してください。」というエラーが表示されます。
ここでは『選択クエリー』を使っているつもりなのですが・・・どうしてでしょうか?

申し訳ございませんが、どなたか教えてもらえないでしょうか。
ちなみに『一対多リレーションシップ』です。
お願いします。
#1887-1
RE#1885:パラメータが少なすぎます。
SQLに構文ミスがあります。
SQl文を見直してください。
#1888-1
RE#1887:パラメータが少なすぎます。
> SQLに構文ミスがあります。
> SQl文を見直してください。

恐らく存在していないフィールド名を使用しているのでは?
#1894-1
RE#1888:パラメータが少なすぎます。
> > SQLに構文ミスがあります。
> > SQl文を見直してください。
> 
> 恐らく存在していないフィールド名を使用しているのでは?

私もそうだと思い何度もSQL文を見直したのですが、うまくいきませんでした。
以下にプログラムの問題のSQL文を載せます。

    Soukanlist = "マスターメンテナンス相関リスト"
    Sqlstr1 = "SELECT * FROM " + Soukanlist + " WHERE 参照テーブル名 = " + TBname
  set rst2 = dbs.OpenRecordset(Sqlstr1)

ここで、マスターメンテナンス相関リストはテーブル名でフィールドとして参照テーブル名があります。
また、TBnameは別のテーブルにおけるフィールド名で文字列に当たります。

間違いは無いと思うのですが、確認お願いします。
#1896-1
RE#1894:パラメータが少なすぎます。
>     Sqlstr1 = "SELECT * FROM " + Soukanlist + " WHERE 参照テーブル名 = " + TBname
> また、TBnameは別のテーブルにおけるフィールド名で文字列に当たります。
> 間違いは無いと思うのですが、確認お願いします。

間違ってます。文字列は何かでくくらなければなりません。
#1897-1
RE#1896:パラメータが少なすぎます。
> >     Sqlstr1 = "SELECT * FROM " + Soukanlist + " WHERE 参照テーブル名 = " + TBname
> > また、TBnameは別のテーブルにおけるフィールド名で文字列に当たります。
> 間違ってます。文字列は何かでくくらなければなりません。

申し訳ございません。説明不足でした。
TBnameは、
  TBname = "○○○"
と定義しています。

#1899-1
RE#1897:パラメータが少なすぎます。
Sqlstr1 = "SELECT * FROM " + Soukanlist + " WHERE 参照テーブル名 = " + TBname
Debug.Print Sqlstr1
としてみてください。
文字列部分はくくられてますか?
#1901-1
RE#1899:パラメータが少なすぎます。
> Sqlstr1 = "SELECT * FROM " + Soukanlist + " WHERE 参照テーブル名 = " + TBname
> Debug.Print Sqlstr1
> としてみてください。
> 文字列部分はくくられてますか?


    Soukanlist = "マスターメンテナンス相関リスト"
    Sqlstr1 = "SELECT * FROM " + Soukanlist + " WHERE 参照テーブル名 = " + TBname
  set rst2 = dbs.OpenRecordset(Sqlstr1)

文字列は括られていました。
今もいろいろと試してみたのですが、やはりうまくいきません。


#1902-1
RE#1901:パラメータが少なすぎます。
> > Sqlstr1 = "SELECT * FROM " + Soukanlist + " WHERE 参照テーブル名 = " + TBname
> > Debug.Print Sqlstr1
> 文字列は括られていました。

ほんとに?
TBname には何をセットしているのですか?
括り文字も一緒にして、 TBname にセットしているのですか?
#1903-1
RE#1902:パラメータが少なすぎます。
> ほんとに?
> TBname には何をセットしているのですか?
> 括り文字も一緒にして、 TBname にセットしているのですか?

TBname="○○○"
と定義して、フィールド内の文字列をセットしてます。
#1904-0
RE#1903:パラメータが少なすぎます。
> TBname="○○○"
> と定義して、フィールド内の文字列をセットしてます。                                                 ←

いや、そうじゃなくて...

話を、元に戻しましょう。

> > Sqlstr1 = "SELECT * FROM " + Soukanlist + " WHERE 参照テーブル名 = " + TBname
> > Debug.Print Sqlstr1
> 
> 文字列は括られていました。

何をもって、『文字列は括られていた』と判断したのですか?
#1905-1
RE#1901:パラメータが少なすぎます。
>     Soukanlist = "マスターメンテナンス相関リスト"
>     Sqlstr1 = "SELECT * FROM " + Soukanlist + " WHERE 参照テーブル名 = " + TBname
>   set rst2 = dbs.OpenRecordset(Sqlstr1)
> 
> 文字列は括られていました。
> 今もいろいろと試してみたのですが、やはりうまくいきません。

実際にDBに送られる時のSQL文はどうなっているのでしょうか?
Debug.Printとかを使って、OpenRecordset発行時の Sqlstr1 の中身を取得してみてください。
で、その文字列の中身を掲載して下さい。
#1907-1
RE#1901:パラメータが少なすぎます。
話がかみ合って無さそうですが、

> > 文字列部分はくくられてますか?

>     Soukanlist = "マスターメンテナンス相関リスト"
>     Sqlstr1 = "SELECT * FROM " + Soukanlist + " WHERE 参照テーブル名 = " + TBname

ここで
      Debug.Print Sqlstr1
として、生成しようとしているSQL文が正しいのか確認しましょう。

#これを省略してSQL文デバッグ依頼を投げる人が本当に多いです。
#で、大抵「SQL文は正しいと思います」とか「いろいろやってみましたがさっぱりわかりません」
#とかおっしゃる(苦笑)

>   set rst2 = dbs.OpenRecordset(Sqlstr1)
> 
> 文字列は括られていました。

おそらくSQL文は、
SELECT * FROM そうかんりすと WHERE 参照テーブル名 = てーぶる名

のようになり、「参照テーブル名」が文字列型だとするとSQL文的には正しくないのでエラーになります。

SELECT * FROM そうかんりすと WHERE 参照テーブル名 = 'てーぶる名'
が正しいはずです。

正しいSQL文を生成するにはどうすればいいか...もう判りますよね(^^?


#1908-1
RE#1904:パラメータが少なすぎます。
> 
> 何をもって、『文字列は括られていた』と判断したのですか?

デバックウィンドウの『ローカル』の(式,値,型)からです。
  
  : TBname : "材料コンクリートマスタ" : String

SQL文においては括られていません。

#1909-1
RE#1908:パラメータが少なすぎます。
> > 
> > 何をもって、『文字列は括られていた』と判断したのですか?
> 
> デバックウィンドウの『ローカル』の(式,値,型)からです。
>   
>   : TBname : "材料コンクリートマスタ" : String
> 
> SQL文においては括られていません。

皆さんがおっしゃっているのは、「SQL文のTBnameを括ってください」ということです。
つまり
Sqlstr1 = "SELECT * FROM " & Soukanlist & " WHERE 参照テーブル名 = '" & TBname & "'"
とすればうまくいくと思います。
#文字列の連結は + より & の方がおすすめです。
#1910-1
RE#1909:パラメータが少なすぎます。
> 皆さんがおっしゃっているのは、「SQL文のTBnameを括ってください」ということです。
> つまり
> Sqlstr1 = "SELECT * FROM " & Soukanlist & " WHERE 参照テーブル名 = '" & TBname & "'"
> とすればうまくいくと思います。

自分で気付いてほしくて、
私的には、遠まわしに表現していたんですけど...

ズバリ、教えるなんて、やさしいですね。
#1911-1
RE#1909:パラメータが少なすぎます。
皆さんありがとうございました。
やっとプログラムが走りました。

初心者なのでDebug.Printの使い方はわかりませんでしたが、
今日のやりとりで勉強することができました。
本当に感謝しております。

メールが一気にきて私的にかみあっていませんでした。
お詫び申し上げます。
このページと関連する記事:
#1727-0複数テーブルに対する文字検索2002-03-04(月) 17:36
#336-1クエリ式の構文エラー2004-03-03(水) 19:04
#2304-0ODBCでのレコードセット時の『型が一致しません』のエラー2002-05-28(火) 12:27
#20259-0SQLの書き方2002-03-16(土) 12:39
#4937-0配列変数を使ったSQL文(select , insert)のループ処理は?1999-12-07(火) 19:03
#3884-0UPDATEの使い方1999-11-10(水) 16:16
#6874-0パラメータが少なすぎます1999-10-07(木) 14:27
#6834-0SQL文のアスタリスクについて2000-03-22(水) 11:12
#12864-0SQL文について2000-11-20(月) 15:17
#27165-0OracleでのSQL構文2000-08-02(水) 17:54
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)