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

レコードの並び替え_テーブルタイプ : DAO入門講座



昇順、降順にレコードを並び替えることができます。しかし、レコードタイプとダイナセット、スナップショットタイプと異なりますので注意が必要です。

  • レコードタイプの場合は、事前に並び替えを行うフィールドに対してインデックスを作成しておかなくてはいけません。そして、Indexプロパティでそのフィールドを指定するだけです。
  • ダイナセット、スナップショットタイプは、Sortプロパティでフィールドを指定し、併せて昇順または降順を指定するだけです。よって、下準備は不要です。

サンプルテーブルの作成

サンプルテーブルを下記のように作成します。

 
ID 氏名 性別 年齢 血液型
1 鈴木一郎 男性 45 A
2 田中二郎 男性 52 O
3 中村三郎 男性 29 B
4 中田四郎 男性 41 AB
5 佐藤里香 女性 21 O
6 小柳ゆり 女性 27 A
7 北島良子 女性 26 A
8 上島五郎 男性 55 O
9 不破美香 女性 27 B

テーブルタイプのレコードセット

テーブルタイプのレコードセットの場合、テーブル作成時にインデックスを設定しておく必要があります。そして、Indexプロパティでそのインデックスをカレントインデックスに設定し、並び替えを行 う手順です。

インデックスの事前設定

下記の手順でインデックスを設定します。

  • テーブルをデザインビューで開きます。
  • メニューバー → 表示 → インデックス から下記のダイアログを開きます。

サンプルでは、年齢フィールドを対象に降順設定を行います。

プロシージャの作成

Subプロシージャを下記のように記述します。

Sub MyIndex()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strMsg As String
    
    Set db = CurrentDb
    Set rs = db.OpenRecordset("会員登録詳細リスト", dbOpenTable)
    
    rs.Index = "年齢" '--- A
        
    Do Until rs.EOF '--- B
        strMsg = strMsg & vbNewLine & rs!ID & " : " & rs!氏名 & " : " & rs!性別
        strMsg = strMsg & " : " & rs!年齢 & "歳 : " & rs!血液型 & "型"
        rs.MoveNext
    Loop
    
    MsgBox "並び替え : 年齢の降順" & vbNewLine & strMsg
    
    Set db = Nothing
    Set rs = Nothing
    
End Sub
解説
  1. カレントインデックスに年齢フィールドを指定します。
  2. 末尾のレコードまで移動します。
実行結果

SubプロシージャMyIndexをイミディエイト画面上で実行すると、下記のメッセージボックスが表示されます。 これは、年齢フィールドのレコードを降順で並び替えたものです。

2004/06/02

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

 


レコードの並び替え_テーブルタイプ : DAO入門講座


 

-Microsoft Access Club-

アメリカ合衆国の大手データセンターのアダルト対応可能なリーズナブル価格設定の専用・共有レンタルサーバーをご提供しています。
アメリカ合衆国の大手データセンターにサーバー機器を設置。
アダルト対応可能な専用・共有レンタルサーバーを提供。