• ベストアンサー

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

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

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

まずはこちらのご質問から。 > パラメーターでワイルドカードは使えますか? 現在、クエリのデザインビューの『抽出条件』に「[検索条件は?]」と いった形でパラメータを指定されているかと思いますが、その先頭に 「Like 」を追加して、「Like [検索条件は?]」としてやればOkです。 (SQL文を使用されている場合は、「=」演算子を「Like」演算子に  変更すればOk) これで、【ワイルドカード文字を指定するしないに関わらず】、目的の 結果が得られるはずです。 (つまり、ワイルドカード文字がなければ完全一致、「1*」等とすれば  後方一致、「*1」で前方一致、「*1*」で部分一致になる、という  ことです) > 1番と3番のレコードだけを表示する(2番のレコードは除く)方法 もしも当該フィールドに「0~9」の『一桁の数字』しかない場合は、 これも上の方法で(=クエリ自体は変更することなく)解決できます。 (・・・オートナンバー型ではたぶんそんな例は稀だと思いますが(汗)、  「分類番号」のような場合には、使える場面もあるかと) この場合はパラメータダイアログ内で、「[13]」といったように、角括弧で 囲って指定します。 これで、「1または3」が抽出されます(「[246]」なら「2または4または6」)。 なお、仮に「13」という値を持ったレコードがあっても、上記の条件では 抽出されません。 また、ワイルドカード文字を含めて「*[13]*」とした場合は、「1または3を 含むレコード」の全て(=「1~99」までの全整数がテーブルに記録されて いた場合、「1」と「10~19」と「下1桁が1の数全て」)が抽出されます。 ※パラメータダイアログで「[1-5]」と指定すると、「1~5」を抽出できます。   (「[5-1]」と逆にした場合はNG。アルファベット等も同様の指定が可能:   「[A-z]」で全アルファベットに。) 検索対象が2桁以上の数値(または2文字以上の文字列)の場合は、 残念ながら別の方法が必要となります。 この場合は、『抽出条件』欄に、  i)ワイルドカード文字は使用しないなら、   [条件1は?] Or [条件2は?]  ii)ワイルドカード文字も許可するなら、   Like [条件1は?] Or Like [条件2は?] と指定してください。 ・・・長くなりましたが(汗)、以上です。

noname#218560
質問者

お礼

とても分かりやすい回答ありがとうございました。 ワイルドカードは何とかなりそうです。 もう一つの方は検索対象が2桁以上の数値ですので、ちょっと難しそうです。 わざわざの長文お疲れ様でした。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

テーブルのフィールドを ID オートナンバー 名前 テキスト型 とします。 (1) SELECT テーブル1.ID, テーブル1.名前 FROM テーブル1 WHERE (((テーブル1.ID)=[入力1] Or (テーブル1.ID)=[入力2])); (2) SELECT テーブル1.ID, テーブル1.名前 FROM テーブル1 WHERE (((テーブル1.名前) Like "*" & [入力] & "*"));

noname#218560
質問者

お礼

これはSQL文ですか? 勉強不足ですいません。 回答ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A