Access + Webのホームへ戻る

ADOSortプロパティを利用してレコードを並べ替えるには

 

RecordsetオブジェクトのSortプロパティを使用してレコードを並べ替える方法を説明します。

 

recordset.Sort =FieldName [ASC|DESC] [,FieldName [ASC|DESC]]・・・

 

FieldNameには、SQLOrder By句のように並べ替えするフィールド名と並べ替え順を指定します。ASCを指定すると昇順に並べ替えします。DESCを指定すると降順に並べ替えします。並べ替え順を省略するとASCが仮定されます。

 

rs.Sort = “都道府県 ASC”

rs.Sort = “年齢 DESC”

rs.Sort = “性別, 年齢 DESC”

 

Sortプロパティでレコードセットを並べ替えするときは、Connnction/RecordsetオブジェクトのCursorLocationプロパティにadUseClientを設定する必要がります。

 

図 Sortプロパティでレコードを並べ替えるサンプル

 

Access + Webのダウンロードにサンプルが収録されています。ダウンロードの目次を表示させたら、「RecordsetオブジェクトのSortプロパティを利用した手法」をクリックしてください。Internet Explorerの左側のフレームには、ASPのソースが表示されます。右側のフレームには、実行結果が表示されます。

 

図の行21-24では、Access 2000のデータベースado.mdbを接続するための処理を行っています。

 

strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" _

  & "Data Source=" & server.MapPath("webdb/ado.mdb")

set cnn = server.CreateObject("adodb.connection")

cnn.open strConnection

 

26では、Recordsetのインスタンスを生成しています。

 

set rs = server.CreateObject("adodb.recordset")

 

27-39With…End Withでは、Recordsetのオブジェクトを参照しています。行28では、CursorLocationプロパティにadUseClientを設定しています。Sortプロパティを使用して並べ替えするときは、adUseClientを指定する必要がります。行29では、ado.mdb得意先テーブルを開いています。行30では、Sortプロパティに並べ替えのフィールドとして「都道府県」を設定しています。並べ替え順を省略していますので昇順が採用されます。

 

.CursorLocation = adUseClient

.Open "得意先;", cnn, adOpenKeyset, adLockReadOnly

.Sort = "都道府県"

 

31-37do until…loopでは、都道府県順に並べ替えされたレコードセットをブラウザに表示させています。行32-34では、Fieldsプロパティにフィールド名(都道府県、得意先コード、得意先名)を指定してResponse.Writeでブラウザに送信しています。行35では、HTML<br>タグを送信して改行しています。行36では、MoveNextメソッドで次のレコードに移動しています。カレントが最終レコードのとき、MoveNextメソッドを実行するとEOFが報告されてdo until…loopが終了します。

 

do until .EOF

  response.Write .Fields("都道府県").Value & vbTab

  response.Write .Fields("得意先コード").Value & vbTab

  response.Write .Fields("得意先名").Value

  response.Write "<br>"

  .MoveNext

loop

 

38では、Closeメソッドでレコードセットを閉じています。行40では、ConnectionオブジェクトのCloseメソッドでデータベースを切断しています。行41-42では、Server.CreateObjectメソッドで生成したRecordsetオブジェクトとConnectionオブジェクトを解放しています。

 

set rs = nothing

set cnn = nothing

 

 

Access + Webのホームへ戻る