スポンサードリンク

文字とパラメータを使って都道府県を抽出

今回は初級の復習で文字を使った都道府県の抽出と、文字を使った場合のパラメータの書き方について新しく学びます。文字を使ったあいまいな抽出では、パラメータの書き方が少し複雑になります。

また初級でも解説しましたが、特に「?」と「*」を使った場合の結果の違いに注目してください。0文字以上と1文字の違いは大きいです。0文字以上とは0でも何文字でもかまいません。1文字とは0文字でも2文字でもダメです。

・あいまいな抽出(検索)にはLikeを使う。
・*は任意の0文字以上。
・?は任意の1文字。


【1】Accessのファイル「SampleDB020.mdb」を起動します。
*簡単な操作は省略していきます。


【2】クエリ「Q03Prefecture」をデザインビューで開きます。

access-query156.gif


【3】PREF_NAMEの 抽出条件: に '山形県' と入力します。「'」シングルクォーテーションは半角です。文字列は「'」で囲みます。

access-query184.gif


【4】デザインビューで確認すると、山形県のレコードが抽出されました。

access-query185.gif


【5】今度はPREF_NAMEの 抽出条件: に '山形' と入力します。

access-query186.gif


【6】デザインビューで確認すると、何も抽出されません。

access-query187.gif

文字は完全一致しなければならないからです。あいまいな抽出(検索)にはLikeを使います。


【7】PREF_NAMEの 抽出条件: に Like '山形?' と入力します。

access-query188.gif


【8】山形の後に1文字の山形県が抽出されました。

access-query189.gif


【9】PREF_NAMEの 抽出条件: に Like '山??' と入力します。

access-query190.gif


【10】山の後に2文字の都道府県が抽出されました。

access-query191.gif


【11】PREF_NAMEの 抽出条件: に Like '山*' と入力します。

access-query192.gif


【12】結果は同じですが意味の違いに注意してください。山の後に0文字以上の都道府県が抽出されたことになります。

access-query193.gif


【13】PREF_NAMEの 抽出条件: に Like'?山*' と入力します。

access-query194.gif


【14】山の前に1文字、後ろに0文字以上の都道府県が抽出されました。

access-query195.gif


【15】PREF_NAMEの 抽出条件: に Like'*山*' と入力します。

access-query196.gif


【16】山の前に0文字以上、後ろに0文字以上の都道府県が抽出されました。

access-query197.gif

?の場合には抽出されなかった、和歌山県や山口県が表示されています。和歌山県は山の前に複数文字ありますし、山口県は山の前が0文字です。


【17】ここからが今回のポイントです。PREF_NAMEの 抽出条件: に Like '*' & [文字を入力してください。] & '*' と入力します。

access-query198.gif

考え方ですが、文字列は「'」で囲み、パラメータは外に出します。そして「&」を使ってつなげます。

Accessの場合はかわりに「+」を使って以下のようにも書けます。
 Like '*' + [文字を入力してください。] + '*'


【18】パラメータの入力画面が表示されたら、「山」と入力し、「OK」ボタンをクリックします。

access-query199.gif

最終的にパラメータの部分が文字に変わりますので、 Like '*山*' になったとイメージしてください。


【19】山の前に0文字以上、後ろに0文字以上の都道府県が抽出されました。

access-query200.gif


【20】パラメータを使い、「川」で都道府県を抽出した場合の結果です。

access-query201.gif

 Like '*川*' になる。


【21】パラメータは複数文字でも入力できます。「京都」で都道府県を抽出した場合の結果です。

access-query202.gif

 Like '*京都*' になるので、京都以外に東京都も表示されます。


【22】またPREF_NAMEの 抽出条件: はシンプルに Like [文字を入力してください。]  と入力しておいて、パラメータの入力の時に「?」や「*」を文字の前後に含めても同じ働きになります。

access-query203.gif

access-query204.gif


【23】クエリ「Q03Prefecture」は保存しないで閉じてください。

access-query163.gif


文字の場合もBetweenを使った抽出はできますが、意図したように表示させるにはフリガナフィールドを用意したり工夫が必要なので、今回は省略します。


スポンサードリンク






Microsoft Access初心者入門講座 TOPへ