スポンサードリンク



Accessのクエリで文字で抽出する方法とは?

今回はクエリの抽出条件に文字を使った方法を解説します。文字(1文字)は種類も多く、文字を組み合わせた文字列は数えきれないほど多くあるので、少し工夫が必要です。

【1】Accessのファイル「クエリ練習.mdb」を起動します。

access-query47.gif


【2】オブジェクトで「クエリ」を選択します。

access-query65.gif


【3】「Q03抽出クエリ」を選択し、「デザイン」をクリックします。

access-query66.gif


【4】クエリのデザインビューが開きました。

access-query67.gif


【5】はじめにデータシートビューでどんなレコードがあるか確認します。今回は文字で抽出しますので、食品名と分類名に注目してください。

access-query86.gif


【6】分類名の 抽出条件: に「"野菜"」と入力します。文字列は「"」ダブルクォーテーションで囲むのがポイントです。

access-query87.gif


【7】データシートビューで確認すると、分類名が野菜のレコードが抽出されています。

access-query88.gif


【8】分類名の 抽出条件: に「'野菜'」と入力します。今度は「'」シングルクォーテーションで囲んでいます。

access-query89.gif


【9】先ほどと同じ結果になりました。

access-query88.gif

*Accessでは文字列は「"」ダブルクォーテーションか「'」シングルクォーテーションで囲みます。しかしAccessを他のプログラミング言語からSQLを使って操作するときに、ダブルクォーテーションだと上手く動かないことがあります。


【10】食品名の 抽出条件: に「'ン'」と入力します。

access-query90.gif


【11】何もレコードが表示されません。「ン」という文字列と完全に一致するレコードがないためです。

access-query91.gif


【12】あいまいな抽出にはLikeを使います。食品名の 抽出条件: に「Like '*ン'」と入力します。

access-query92.gif


【13】データシートビューで確認すると、食品名が「ン」で終わるレコードが抽出されています。

access-query93.gif

でもリンゴやサンマは抽出されていませんね。「*」アスタリスクは任意の0文字以上を意味しますので、ン、○○ン、○○○○ンなど最後がンで終わる文字列はOKですが、○ン○のように途中にある形はダメです。


【14】食品名の 抽出条件: に「Like '*ン*'」と入力します。

access-query94.gif


【15】データシートビューで確認すると今度はリンゴやサンマも抽出されています。

access-query95.gif

「*」アスタリスクは任意の0文字以上ですので、ン○○、○○ン、○ン○、の形でもよいわけです。


【16】食品名の 抽出条件: に「Like '*ン?'」と入力します。

access-query96.gif


【17】データシートビューで確認するとリンゴやサンマが抽出されています。

access-query97.gif

「?」は任意の1文字を意味しますので、○○ン○のように必ず「ン」の後にもう1文字ある形でなければなりません。なのでニンジンは表示されません。


【18】では食品名の 抽出条件: に「Like 'サ?'」と入力するとどうなるでしょうか?

access-query98.gif


【19】データシートビューで確認するとサバが抽出されています。

access-query99.gif

サの後に任意の1文字なのでサンマは表示されません。


【20】食品名の 抽出条件: に「Like 'サ*'」と入力するとどうなるでしょうか?

access-query100.gif


【21】今度はサンマも表示されました。

access-query101.gif


【22】食品名の 抽出条件: に「Like '*サ*'」と入力するとどうなるでしょうか?

access-query102.gif


【23】同じように表示されます。アスタリスクは0文字以上なので、サの前には文字がなくてもかまわないわけです。

access-query103.gif


【24】「Q03抽出クエリ」はまた使いますので、保存しないで閉じてください。


【まとめ】
・あいまいな抽出にはLikeを使う。
・*は任意の0文字以上。
・?は任意の1文字。

スポンサードリンク






Microsoft Access初心者入門講座 TOPへ