

お世話になります。
Accessで順位付けを行いたいのです。
サブクエリでやってみたのですがレコード数多く遅くなってしまうのでVBAで行いたいのですが、
VBAが初心者でうまく出来ません。
『コード』ごとで『半期』の降順に以下のように作成したいのです。
テーブル名 『ランク』
コード(テキスト型) 獲得数(数値型) 期ごと(テキスト型) 順位
A123 55 2010上期 1
A123 0 2010下期 2
A123 269 2009上期 3
A123 1 2009下期 4
A123 789 2008上期 5
A123 101 2008下期 6
------------------------------------------------------------
C456 10 2010上期 1
C456 0 2010下期 2
C456 776 2009上期 3
C456 0 2009下期 4
C456 0 2008上期 5
C456 0 2008下期 6
どうぞよろしくお願いします。
No.2ベストアンサー
- 回答日時:
No.1 の回答のコードにいつくか間違いがありましたので、下記に訂正します。
Dim rs As DAO.Recordset
Dim cd As String, i As Integer
Set rs = CurrentDb.OpenRecordset("SELECT * FROM ランク ORDER BY コード, 期ごと DESC")
Do Until rs.EOF
If cd = rs!コード Then
i = i + 1
Else
i = 1
cd = rs!コード
End If
rs.Edit
rs!順位 = i
rs.Update
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
No.1
- 回答日時:
DAOを使用する例
DAOに参照設定が必須
数値型の「順位」フィールドを追加
Dim rs As DAO.Recordset
Dim cd As String, i As Integer
Set rs = CurrentDB.OpenRecordset("SELECT * FROM ランク ORDER BY コード, Left(期ごと,4), Mid(期ごと,5)='上期'"
Do rs.EOF
If cd = rs!コード Then
i = i + 1
Else
i = 1
cd = rs!コード
End If
rs.Edit
rs!順位 = 1
rs.Update
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
テーブルデータに変更があったときに上記のコードを実行します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
accessで移動平均する方法
-
ACCESS2000のテーブル構造
-
請求と入金のテーブルの作成の...
-
SQLで○○の値以外を持っているレ...
-
SELECT時の行ロックの必要性に...
-
Accessにインポートしたら並び...
-
SI Object Browserのテーブルス...
-
クエリのキャンセルがいつにな...
-
Accessでの排他制御
-
更新クエリでキー違反
-
SQLサーバーのテーブルの値...
-
sqlite(spatialite_gui)での...
-
AccessShareLock はどの程度気...
-
コクヨ タイトルブレーンでイ...
-
IDENTITY列
-
PL/SQLでFROM句に変数を使いたい
-
数百万件レコードのdelete
-
SQL SERFVER で外部キーのエラ...
-
オラクルではできるのにSQLSERV...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
accessで移動平均する方法
-
請求と入金のテーブルの作成の...
-
ACCESS2000のテーブル構造
-
重複するキーから一番古い年月...
-
2つのテーブルから条件に一致...
-
Accessユニオンクエリーで2つ...
-
主キーの変更
-
ACCESS 一つのフィールドに複...
-
PLSQLの識別子エラー
-
続.ORACLEのSELECTのソートに...
-
Accessでフィールドを比較した...
-
行方向のデータを横に並べる
-
update文で質問です。 下記の条...
-
ACCESS2000です。
-
VIEWでテーブルの集計結果...
-
場合によって条件を変えるSQL
-
商品コード番号を入力すると商...
-
ACCESSのコンパイルエラーについて
-
Sheet1$が存在致しませんとエラー
おすすめ情報