Microsoft Access Club >DAO入門講座 >このページ >次頁 < 前項  サイト内検索
 

レコードの抽出_あいまいな条件 : DAO入門講座



Filterプロパティを用いる時に、Like演算子を組み合わせて「あいまいな条件」を設定することができます。例えば、「氏名」フィールドのレコード内の文字列検索時に漢字の "田" をもつ者を抽出する場合、下記のような記述方法をとります。

レコードセット.Filter = "氏名 Like '*田*'"
留意事項

Like演算子と文字パターンは、下記のようにまとめることができます。

表1
文字列パターン 説明
? 任意の1文字
* 任意の複数文字
# 任意の1文字の数字
[sample] sampleの中の1文字
[!sample] sample以外の一文字
表2
フィールド 表示内容
フリガナ Like "シ*"  社名が "シ" で始まる得意先
得意先名  Like "*会社" 社名の最後が "会社" の得意先
フリガナ Like "[ア-サ]*" 社名がア〜サで始まる得意先
得意先名  Like "*株式*"  社名に "株式" という文字が入っている得意先
得意先名  Like "株式会社?" 社名の先頭 4 文字が "株式会社" で始まる会社

サンプルのテーブルレコード

サンプルとして、氏名フィールドから "田"または"島"がつくレコードを抽出し、新たなレコードセットを作成してみます。テーブルデータは下記のように想定します。

ID 氏名 性別
1 鈴木一郎 男性
2 田中二郎 男性
3 中村三郎 男性
4 中田四郎 男性
5 佐藤里香 女性
6 小柳ゆり 女性
7 北島良子 女性
8 上島五郎 男性
9 不破美香 女性

サンプルプロシージャの作成

Subプロシージャを作成します。

Sub MyFilter()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strMsg As String
    
    Set db = CurrentDb
    Set rs = db.OpenRecordset("入会申し込みリスト", dbOpenDynaset) '--- A
    
    rs.Filter = "氏名 Like '*田*' Or 氏名 Like '*島*'" '--- B
    
    Set rs = rs.OpenRecordset() 
    
    Do Until rs.EOF
        strMsg = strMsg & vbNewLine & rs!ID & " : " & rs!氏名 & " : " & rs!性別
        rs.MoveNext
    Loop
    
    MsgBox "該当者" & vbNewLine & strMsg
    
    Set db = Nothing
    Set rs = Nothing
    
End Sub
解説
  1. ダイナセットタイプのOpenRecordsetオブジェクトを作成します。

  2. Like演算子を用いたあいまい条件を設定しています。田または島の文字を持つレコードを抽出します。

実行結果

イミディエイトウィンドウで上記のSubプロシージャを実行すると、下記のメッセージボックスが返されます。

 

2004/06/01

ページの先頭へ 前ページへ戻る

 


レコードの抽出_あいまいな条件 : DAO入門講座


 

-Microsoft Access Club-

年額2,400円でドメインネームサーバーをご用意します。自宅サーバ構築時にご利用下さい。自宅サーバーは応用範囲が広いです。
年額2,400円でドメインネームサーバー。
自社・自宅サーバ構築時にご利用下さい。
やはり、自前サーバーは応用範囲が広いです。