• 締切済み

Access2002のパラメータ設定で

Access初心者です。 クエリの取引先フィールドにパラメータを設定します。 webから「[取引先を入力してください]」と、大括弧ごとペーストしてEnterを押すと、ダブルクオーテーションで囲まれてしまい、 パラメータの指定に失敗してしまいます。 大括弧を手入力すればうまく行くのはわかるのですが、 ペーストするとどうして失敗するのでしょうか? その理由を教えてください。

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

> これはうまく行った方のクエリでしょうか?失敗している方のクエリでしょうか? 両方見比べてください。SQLビューでの場合、 うまく行く方:(前略)where <条件付けしたい列名>=[取引先を入力してください](後略) うまく行かない方:(前略)where <条件付けしたい列名>="[取引先を入力してください]"(後略) のはず。 つまり<条件付けしたい列名>の値が[取引先を入力してください]であるものを探せ、になってます。だから失敗。 >> 「パラメータ」は通常、テーブル・クエリのどちらにも定義されていない変数です。 > >この意味がよくわかりません。 対象は単独のテーブルですか?2つ以上のテーブルを結合したことがありますか? where条件など、出てくる項目(ここでは列)は、正規には [テーブル名]![列名](または[テーブル名].[列名])で表現されます。 日本語名のテーブルや列名だと自動で囲まれます。 でも、冗長なので普通は省略して<列名>のみ、でOKです。 なのでselectやwhereで登場する列名は、テーブル(またはクエリ)に定義されている列から自動的に探し出して使用されます。 これは2つ以上のテーブルを結合させ、またそのどちらにも同じ列名があると、テーブル名が補われることでも確認いただけると思います。 クエリの元となるテーブル(またはクエリ)に定義されていない項目が登場すると、不足しているので内容を指定しろ!、と表示・要求してきます。 これこそが「パラメータ」なのです。 以下もお試しください(別MDBでね) 2列以上をもつテーブルを作成し、すべての列を列挙して選択するクエリを作成してみてください。(テーブル.*ではダメ) データを適当に何レコードか作成しておいてからクエリを実行してみる。問題なく検索されますよね。 次に、このテーブルの列をひとつ削除してしまう。そしてクエリを再度実行。 不足している情報を求めてきます。 (削除した列名の値入力を求めるダイアログが表示されます)

runbini
質問者

補足

再びありがとうございます。 おっしゃることは難しいのですが、これからの宿題にさせてください。 さて、一番知りたいのが、デザインモードで、取引先名フィールドの下の 抽出条件の所に、 webから[取引先を入力してください]とペーストするのと[]を手入力してから中身の文字列をペーストするのでは 同じ事をしているのに結果が違う理由なのです。 宜しければ教えてください。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

作成しているクエリをデザインビューまたはSQLビューでみてください。 「パラメータ」は通常、テーブル・クエリのどちらにも定義されていない変数です。 変数は「[]」で囲むことで示されます。 だからその中に「[]」が入るのでは[]が二重になるので、マズイ。 同じような例は、文字型で定義された列に抽出条件を指定すると自動的に「"(ダブルクォーテーション)」で囲まれますよね。 あれと同じです。「'(シングルクォーテーション)」で回避もできますが。 で、良いですか?

runbini
質問者

お礼

補足の補足ですみません。 大括弧=[] かぎ括弧=「」 で、かぎ括弧はペーストも入力もしていません。 デザインビューで表示されている失敗例は "[取引先を入力してください]" です。 これは "[[取引先を入力してください]]" という風に大括弧が2重にはなっていませんし、SQLビューの方も2重にはなっていません。

runbini
質問者

補足

回答をありがとうございます。少々補足質問させてください。 > 作成しているクエリをデザインビューまたはSQLビューでみてください。 これはうまく行った方のクエリでしょうか?失敗している方のクエリでしょうか? > 「パラメータ」は通常、テーブル・クエリのどちらにも定義されていない変数です。 この意味がよくわかりません。 > 変数は「[]」で囲むことで示されます。 これはわかります。WHERE (((T取引先.取引先名)=[取引先を入力してください]));という感じになっています。 > だからその中に「[]」が入るのでは[]が二重になるので、マズイ。 [[]]ということでしょうか?デザインビューで[]を手入力して文字部分をペーストすれば上記の記述になり、[取引先を入力してください]と大括弧ごとペーストする(もちろん[]の手入力はありません)と、SQLビューではWHERE (((T取引先.取引先名)="[取引先を入力してください]"));となり、[[]]にはなっていません。 > 同じような例は、文字型で定義された列に抽出条件を指定すると自動的に「"(ダブルクォーテーション)」で囲まれますよね。 はい。webから貼り付けた[取引先を入力してください]は文字列として認識されるわけですが、[]を手入力、文字だけをペーストすると文字列として認識されない、この違いはどこから来るのでしょうか? > 「'(シングルクォーテーション)」で回避もできますが。 どこにいつシングルクォーテーションを入力すればいいでしょうか? 宜しくお願いいたします。

関連するQ&A

  • access2002でのパラメータ表示

    こんにちは、初めて質問します。 OS:WinXPsp2 ソフト:access2002 accessの初心者なのですが、質問があります。 テーブルを一つ作り、そこから選択クエリを一つ作りました。 その中で「住所」フィールドと「水道局」フィールドという項目があり、 「住所」フィールドは”あいまい検索”にしてパラメータ表示から検索するようにし、 「住所」を入力すると「水道局」の答えが返ってきます。 例えば、クエリを実行するとすぐに「住所」のパラメータ画面が表示されますが、 その中に”江戸川区一之江”と入力すると、データシートビュー画面の 「水道局」フィールドに一之江水道局”と答えが返ってきます。 ここから本題なのですが、フォームで「水道局」というテキストボックスと 「水道局検索」というコマンドボタンを設置し、マクロで先ほど作ったクエリを実行させて、 パラメータ画面内に”江戸川区一之江”と入力すると 同じフォーム内の「水道局」のテキストボックス内に”一之江水道局”と表示させたいのですが、 どうしてもクエリのデータシートビュー画面が開きその中で答えが返ってきてしまいます。 「水道局」のテキストボックスの中に答えが入るにはどういうマクロを使えばいいのでしょうか? なんとかクエリ自体をフォームのフィールドリストにして、 「水道局」のテキストボックスを作りましたが、毎回フォームを開くと パラメータ表示画面が出てきます。 その最初に出てくるパラメータ表示画面を出なくさせるにはどうすれば よいのでしょうか? 誰かお知恵をおかしください。

  • クエリのパラメータについて教えてください(Access2000)

    Access初心者です。 クエリのデザインビューでフィールドに条件を設定するために[](角かっこ)でパラメータを設定しました。 人から聞いたのですが、そのあとにメニューバーの「クエリ」-「パラメータ」でも設定をした方がいいと言われました。 これはどういう理由からでしょうか? また、設定をしなくてもできるのですが、どんな不都合があるのでしょうか? 私自身、初心者なのですが、人に教えないといけないんです。 わかりやすくご指導ください。 よろしくお願いします。

  • ACCESS サブレポート パラメータにつき

    いつもお世話になっております 日付を指定するパラメータクエリをソースにレポートを作りました Aフィールド(例:仕入先)での小計を出し、同一の用紙の下部にBフィールド(例:商品名)での小計を出すようにしたのですが(同じクエリーを使用)、プレビューを見るときにパラメーターの入力(日付)を3度も要求されます。それを印刷しようとすると更に2度日付を入れなければならないように出来てしまいました ACCESS初心者です 何がいけないのか アドバイスお願いします

  • Access のパラメータクエリについて

    お世話になります。 Accessでクエリを作成する練習をしています。 住所フィールドを含むクエリを基にして、住所フィールドにパラメータを設定するクエリを作成しています。 住所フィールドには、東京都で始まる住所、千葉県で始まる住所そして埼玉県で始まる住所が多数入力されています。 「パラメータの入力」ダイアログボックスに、ワイルドカードを使用して“東京都*”と入力して、クエリを実行すると1件も抽出できません。 パラメータには、ワイルドカードを使用できないのでしょうか。 または、他に理由があるのでしょうか。 よろしくお願いします。 OS: Windows 7  Office:2010

  • Access2003 パラメーター検索の方法

    Access初心者です。お手数お掛けしますが宜しくお願い致します。 早速質問ですが、「自宅電話番号」、「携帯電話番号」、「FAX番号」の各フィールドがあります。 上記フィールドから自宅電話番号だけを検索するパラメーターや携帯電話番号だけを検索するパラメータを作成することはできたのですが、上記3個のフィールドに入力されている番号を1つのパラメータで横断的に検索したいのですが、その時のクエリの作成方法についてご存知の方がいらっしゃいましたら何卒お教え下さい。 初歩的すぎる質問かもしれませんが、何卒宜しくお願い致します。

  • Accessのパラメータークエリについて教えてください。

    よろしくお願いします。 Accessのパラメータークエリについて教えていただきたいのですが、 例えば、商品名 と 担当者 と言うフィールドがあって、クエリを使用し[商品名を入力してください。][担当者を入力してください。]というパラメータクエリを作成しました。 そして、商品名のダイアログが出てきたときに「鉛筆」 担当者のダイアログが出てきたときに「遠藤」と入力すると思い通り物ものが出来るのですが、同じパラメータクエリを使用して、「遠藤」だけを抽出しようと思うと何も抽出されません。(たぶん「遠藤」と「空白」の抽出になっているのだと思うのですが・・・) ひつのクエリを使用して、2つでの条件と1つだけの条件で抽出することは出来ないでしょうか?よろしくお願いします。 Accessは2000or2002です。

  • パラメータクエリを一つにまとめたい

    クエリ1を基にフォーム1を作成、 クエリ2を基にフォーム2を作成、 クエリ1も2もパラメータクエリを使用していて フィールド名は「番号」データ型はテキスト型です。 そして新規にフォーム3を作成しフォーム1とフォーム2をドラッグしました。 この状態でフォーム3をダブルクリックすると パラメータの入力を2回求められますがどちらも同じ番号を入力しています。 (「001」などを2回入力) これを1回にすることは可能でしょうか? ・番号フィールドの基テーブルはクエリ1と2は違うテーブルです。 ・クエリ1と2は一つにまとめたくありません。 フォーム3上に別々に表示させたいです。 ・クエリ1には全ての番号がありますがクエリ2には抜けている番号があります。 「クエリ1の全レコードとクエリ2の同じ結合フィールドのレコードだけを含める。」で全ての番号を表示できる状態です。 説明が下手ですいません。 アドバイスお願い致します。

  • Accessレポートでパラメータ

    こんにちは。 Accessについて教えて下さい。 レポートを開くと毎回、「ID」というパラメータが開きます。 未入力で「OK」すると、普通にレポートが表示されるのですが 面倒なのでパラメータを消したいです。 元になっているクエリにパラメータや並べ替え等の設定はありません。 IDフィールドに関しては、前任者が消したようで見当たりません。 分かりづらい質問ですが、お願いします。

  • Accessの演算フィールドでのパラメータ設定について教えて下さい

    Accessについて質問です。クエリで「金額:[価格]*[数量]」などの演算フィールドで、パラメータを使って抽出しようと「>=[金額を入れる]」のような条件を設定しました。すると、パラメータに10000と入力すると、10000以上のものが抽出はされますが、1000以上のものまで抽出されてしまいます。どうも先頭の数字に反応しているようです。どういうことなのでしょうか?どなたかよろしくお願いします。

  • ACCESS パラメータクエリの設定

    ACCESSでデータの抽出をしています。 抽出をしたいキーワードが15個ほどあり、そのつどクエリを作るとかなり時間がかかります。データは(20万件ほどです) そこで本を見たところパラメータクエリというものがあり、早速試してみたのですができません。 テーブル名は”本”です。 フィールド1…番号  フィールド2…雑誌名 フィールド3…著者  フィールド4…JANコード になっています。 私はフィールド2のところで抽出条件として "[雑誌名を入力してください]" と入れました。 後もう一点ですが、同一雑誌でも名前が少し違って登録されているものもあり、重複するデータを抜き出して削除したいのですが、削除分と削除された残りのデータが共に必要です。こういった場合はどう処理するのが妥当でしょうか?削除分は別に保存した上で、不一致クエリを使えば正確にできますか?もっとよい方法がありますか? どうぞよろしくお願いいたします。

専門家に質問してみよう