お世話になります。
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel複数シートから日付と文字を取り出して日付順に並べたいです 6 2022/06/06 13:23
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- 物理学 抵抗力と一定の力fが働く場合の物体の運動について、一般解をx=ft/γ+C3e^(-γt/m)+C4 2 2023/07/13 08:25
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- 高校受験 中学や高校で、成績上位者の名前を廊下に張り出していましたか? 5 2022/09/25 23:21
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- マンション管理士 分譲マンション・管理組合の来期役員が決まらない場合について教えてください。 2 2023/02/13 20:31
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
商品コード番号を入力すると商...
-
【Access】順位を付けたい
-
Accessリレーションシップ
-
VIEWでテーブルの集計結果...
-
SQL文について(片方のテーブル...
-
[Oracle] UPDATE分の副問い合わ...
-
PLSQLの識別子エラー
-
Microsoft SQLで共通の店舗で買...
-
ACCESS 一つのフィールドに複...
-
MySQLのgroup by同士の結合につ...
-
項目内の改行がレコードの終わ...
-
Accessでフィールドを比較した...
-
ACCESS ピボットテーブ...
-
片方だけ抽出する方法(SQL)
-
データの二重表示の原因
-
ACCESSのSQLで、NULLかNULLでな...
-
Accessにインポートしたら並び...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
ACCESS 一つのフィールドに複...
-
商品コード番号を入力すると商...
-
行方向のデータを横に並べる
-
PLSQLの識別子エラー
-
Inner join と Left joinの明...
-
片方だけ抽出する方法(SQL)
-
SQL 2つのテーブルとSUBSTRING...
-
Accessユニオンクエリーで2つ...
-
主キーの変更
-
Accessでフィールドを比較した...
-
SQL文について(片方のテーブル...
-
続.ORACLEのSELECTのソートに...
-
場合によって条件を変えるSQL
-
請求と入金のテーブルの作成の...
-
sqlのupdate文で質問です。 テ...
-
[Oracle] UPDATE分の副問い合わ...
-
accessで移動平均する方法
おすすめ情報