プロが教えるわが家の防犯対策術!

毎回ここでお世話になっております。

2つ質問がありまして一つは・・・
パラメーターで複数のレコードを指定できるのかということです。
例えば、オートナンバー型にパラメーターを設定していて、1番と3番のレコードだけを表示する(2番のレコードは除く)方法はあるでしょうか?

もう一つは・・・
パラメーターでワイルドカードは使えますか?
使えない場合、クエリでわざわざ条件抽出する以外で、ワイルドカードを適応させる方法をお教えください。

以上2つの質問お願いします。

A 回答 (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は?]
と指定してください。


・・・長くなりましたが(汗)、以上です。
「Accessのクエリのパラメーター」の回答画像2
    • good
    • 0
この回答へのお礼

とても分かりやすい回答ありがとうございました。
ワイルドカードは何とかなりそうです。

もう一つの方は検索対象が2桁以上の数値ですので、ちょっと難しそうです。

わざわざの長文お疲れ様でした。ありがとうございました。

お礼日時:2011/03/11 16:38

テーブルのフィールドを


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 "*" & [入力] & "*"));
    • good
    • 0
この回答へのお礼

これはSQL文ですか?
勉強不足ですいません。

回答ありがとうございました。

お礼日時:2011/03/11 16:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!