• ベストアンサー

クエリのパラメータ

お世話になります。 ASP.netの勉強中です。 クエリのパラメータに関して、わからないことがあり、質問させて頂きます。 SqlDataSourceのクエリでパラメータを指定する場合は"@"を指定すればよいと 言うことを調べたのですが、@を指定してクエリを作成したところパラメータとは 認識されず、文字列となり、パラメータの定義の画面が表示されません。 (クエリは以下のようになります。) SELECT 形状マスタ.* FROM 形状マスタ WHERE ([コード] = @CD) "@CD"を"?"にすると、パラメータの定義画面が表示され、実行した場合も パラメータとして認識されています。 出来れば"@"でパラメータを指定したいので、教えて頂ければ幸いです。 初歩的な質問で申し訳ありませんが、よろしくお願い致します。

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

  • ベストアンサー
回答No.2

PARAMETERS [@CD] Long; SELECT 形状マスタ.* FROM 形状マスタ WHERE (((形状マスタ.コード)=[@CD])); とか。 @CD は [ と ] でくくる。 デザインビューのパラメータ指定画面で [@CD] と型を指定する。 その結果が上記の SQL です。 私は Access でもパラメータには @ をつけてますね。

ThunderAce
質問者

お礼

回答ありがとうございます。 納得できました。 とりあえず、今回は?で作ってみました。 近いうちに試してみます。 丁寧な回答ありがとうございました。

その他の回答 (1)

  • aspnet
  • ベストアンサー率79% (72/91)
回答No.1

Access MDB使ってるんと違います? SQL Serverなら「@なんちゃら」を使えますが、ACCESSだと使えません。

ThunderAce
質問者

お礼

回答ありがとうございます。 MDBは使用していません。 SQL SERVERをODBC接続で行っております。

関連するQ&A

  • htmlでコンボボックスのパラメータを指定したい

    環境 asp.net htmlでコンボボックスをセットしています。 以下のDefaultValueの値をコントロール名にしたいのですがどのように記述すればよいのでしょうか? <asp:SqlDataSource ID="sqlddl1" runat="server" ConnectionString="<%$ ConnectionStrings:xxxConnectionString %>" SelectCommand="SELECT CD, NAME FROM TABLE WHERE (CD = @CD)"> <SelectParameters> <asp:Parameter DefaultValue="123" Name="CD" Type="String" /> </SelectParameters> </asp:SqlDataSource>

    • ベストアンサー
    • HTML
  • Accessのパラメータクエリを他のクエリから呼ぶ

    VBAで日付を指定してSelectするクエリなのですが、同じ処理をたくさんつくるのが嫌なので、 パラメータクエリにしたいのですが、、、 例えば、 日別売上クエリ: Parameters pDate datetime; を持つ        (VBAから直接呼ぶのはこれだけ) このクエリは、以下の2つのJoinからなる  日別レジ別売上クエリ: 下位クエリで、Parameters pDate datetime; を持つ (客数を得るクエリ) 日別部門別売上クエリ: 下位クエリで、Parameters pDate datetime; を持つ (金額を得るクエリ) 共に、Where を日付=pDateとしてます。 そうしておいて、VBAから set rs1=DB1.Openrecordset(”Select  、、、、From  日別売上クエリ(#” & strDate  & ”#) ”) とやったのですが、ダメでした。 パラメータクエリを他のクエリから呼ぶ構文をお教え下さい。 尚、「パラメータクエリをクエリから呼」や「パラメータクエリをSQLから呼」でGoogleったのですが、 見つかりませんでした。

  • Accessのクエリのパラメーター

    毎回ここでお世話になっております。 2つ質問がありまして一つは・・・ パラメーターで複数のレコードを指定できるのかということです。 例えば、オートナンバー型にパラメーターを設定していて、1番と3番のレコードだけを表示する(2番のレコードは除く)方法はあるでしょうか? もう一つは・・・ パラメーターでワイルドカードは使えますか? 使えない場合、クエリでわざわざ条件抽出する以外で、ワイルドカードを適応させる方法をお教えください。 以上2つの質問お願いします。

  • パラメータークエリの抽出ができません

    アクセスで、抽出条件に「>=[いつから] And <=[いつまで]」と日付の範囲指定をしてデータを抽出するクエリを作りましたが、表示されるパラメータに日付を入力して実行してもすべてのデータが表示されてしまいます。 どうしてでしょうか?

  • パラメータクエリで抽出がうまくいきません。

    選択クエリにて、ある日付から今日までの日付をdateiff関数で求め、 それを、DateDiff("m",[最終交換日],Date())という形で、何ヶ月経ったか表示しています。 そこまでは問題なかったのですが、 このクエリをパラメータで条件指定させようとするとうまくいきません。 たとえば、選択クエリのデザインビューで、抽出条件に、>=9、と直接入力すると、 9ヶ月以上のレコードを抽出するのですが、 >=[何ヶ月以上経ったものを探しますか?]と入力し、 パラメータ入力のウィンドウで9を入力すると、抽出されません。 どの数値を入力しても、直接入力ではうまくいくのですが、 パラメータウィンドウから入力するとダメのようです。 いろいろ参考になりそうサイト等見てはみましたが、 原因となりそうなものを見つけることができませんでした。 これが原因では?と、お分かりになる方、 是非教えていただきたく思い、質問いたしました。 よろしくお願いいたします。

  • 選択クエリで偶数月しか表示しない。パラメータについて教えてください。

    顧客データを月ごとにまとめるために選択クエリを作成しました。パラメータには月とテキスト形式といれています。奇数月は表示されず、偶数月のみまとめてくれます。パラメータを設定せずに条件に奇数を打ち込むとちゃんと表示します。パラメータの指定方法がおかしいのでしょうか?よろしくお願いします。

  • Accessのパラメータクエリに入力規則は設定できますか?

    Accessのパラメータクエリを作成した場合に表示されるダイアログボックスに入力する際に日本語入力のオン・オフを切り替える設定はできるのでしょうか? 例えば「担当者CD」が「130」と入力させる場合です。

  • SQLファイルでのパラメータ指定の方法

    いつもお世話になっております。 以下のようなスクリプトを含むSQLファイルで「1234」を何回も記述したくないので、スクリプト上部で1回パラメータ指定する書き方をご教授願います。実行はSQLServerのクエリアナライザで行いたいです。 SELECT * FROM 顧客 WHERE 会社CD=1234; SELECT * FROM 商品 WHERE 会社CD=1234; よろしくお願いします。

  • x.aspxとx.aspx.vbの値の受渡について

    asp.net4で開発を実施しております。 FormViewを使ってデータの登録を行おうとしております。 form1.aspx.vbで設定した変数を、form1.aspx側のsqlにて使いたいと思っているのですが、どのようにすればよいでしょうか? 【form1.aspx.vb】 sub aaa = 1 end sub 【form1.aspx】 : <asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:DB1ConnectionString %>" DeleteCommand="UPDATE Table1 SET [Flg1] = @aaa WHERE [CD] = @CD" <DeleteParameters> <asp:Parameter Name="CD" Type="String" /> <asp:Parameter Name="aaa" Type="String" DefaultValue="<%= aaa %>" /> のように作ってみたのですが、うまくいきません。 どの様にすればよいのかご教示いただければと思います。  よろしくお願い致します。

  • ASPで画面間のパラメタ受け渡し

    こんばんは。ASP初心者です。 ASPでWEBページの作成を行っています。画面遷移をResponse.Redirect()で行っているのですが、遷移前のページと遷移後のページでパラメタを受け渡したい場合はSession("hoge") = "hogehoge"のようにセッションに入れる以外、何か方法はないでしょうか。リクエスト間でパラメタ渡せればがいいので、セッションを通じて保持しておく必要がないのです。クエリを使用するとアドレス欄に変数の値が見えてしまうのでできれば使いたくありません。

専門家に質問してみよう