コメントより
レコードソースは支援日誌。
フィールドは、
ID,利用日付、利用者名、開始時間、終了時間、今日の作業、今日の作業(補足)、今日の体調、今日の特記、記入者、タイムスタンプ、押印
同じ名前の利用者名レコードを集め、降順で利用日付で並べ替えし、直近5件分だけを表示したい。
詳細セクションにコマンドボタンが配置してあり、そのボタンをクリックすると、クリックしたレコードと同じ利用者名で抽出して直近5件を表示する。コマンドボタン名は、cmd直近5件 とします。
vba
1Private Sub cmd直近5件_Click()
2 Dim stFilter As String
3 Dim stSort As String
4 stSort = "利用日付 DESC"
5 stFilter = "利用者名='" & Me.利用者名 & "'"
6
7 Me.Filter = "ID In (SELECT TOP 5 ID FROM 支援日誌 WHERE " & _
8 stFilter & " ORDER BY " & stSort & ")"
9 Me.FilterOn = True
10 Me.OrderBy = stSort
11 Me.OrderByOn = True
12End Sub
FilterプロパティにはSQLのWHERE句に相当する条件式を設定できます。ということはサブクエリも使用可能です。サブクエリで、TOP 5 を使って先頭5件を抽出して、その結果をIn演算子で比較して抽出します。
補足
Excelは表計算ソフト、Accessはリレーショナルデータベース(略してRDB)ソフト、まったく別のものです。
RDBではSQLが必須です。Accessは初心者向けにSQLが分からなくてもクエリでビジュアルな操作でデータ操作ができます。しかし、クエリの中身はSQLです。SQLビューで確認できます。
最初のうちはクエリでのデータ操作を学習しましょう。クエリを作成したら、SQLビューにしてどのようなSQLになっているか確認しましょう。そのうちなんとなく雰囲気が分かるようになってきますので、それからSQLの学習を始めるといいでしょう。
クエリだけではできることに限界がありますので、使いこなすうちにSQLは必要になってきます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/10 04:27 編集
2019/07/10 04:31
2019/07/10 11:27
2019/07/10 11:37 編集
2019/07/10 11:39
2019/07/10 11:41
2019/07/10 14:33
2019/07/10 14:34
2019/07/11 02:16
2019/07/11 02:17
2019/07/11 02:55
2019/07/11 03:33 編集
2019/07/11 12:10
2019/07/11 12:46
2019/07/11 12:59
2019/07/11 13:12
2019/07/11 15:14 編集
2019/07/11 18:16