回答編集履歴

2

コメントの内容にあわせてコードを修正

2019/07/11 18:45

投稿

hatena19
hatena19

スコア34353

test CHANGED
@@ -1,30 +1,42 @@
1
+ コメントより
2
+
1
- > 現状ACCESSの機能でソーできます、フィルターもできます
3
+ > レコードソー支援日誌
4
+
5
+ >
6
+
7
+ > フィールドは、
8
+
9
+ >
10
+
11
+ > ID,利用日付、利用者名、開始時間、終了時間、今日の作業、今日の作業(補足)、今日の体調、今日の特記、記入者、タイムスタンプ、押印
2
12
 
3
13
 
4
14
 
5
- フォムの FilterプロパティSortプロパティ設定るのでしょうか
15
+ > 同じ名前の利用者名レコドを集め降順で利用日付で並べ替えし、直近5件分だけ表示い。
6
-
7
- だとしたら、下記のような感じで可能です。
8
16
 
9
17
 
10
18
 
11
- フォームのレコードソースの主キーフィール ID とします。
19
+ 詳細セクションにコマンドボタンが配置してあり、そボタンをクリックすると、クリックしたレコードと同じ利用者名で抽出して直近5件を表示する。コマンボタン名は、cmd直近5件 とします。
20
+
21
+
12
22
 
13
23
 
14
24
 
15
25
  ```vba
16
26
 
27
+ Private Sub cmd直近5件_Click()
28
+
17
29
  Dim stFilter As String
18
30
 
19
31
  Dim stSort As String
20
32
 
21
- stSort = "並べ替えフィールド"
33
+ stSort = "利用日付 DESC"
22
34
 
23
- stFilter = "抽出条件"
35
+ stFilter = "利用者名='" & Me.利用者名 & "'"
24
36
 
25
37
 
26
38
 
27
- Me.Filter = "ID In (SELECT TOP 5 ID FROM 個人情報1 WHERE " & _
39
+ Me.Filter = "ID In (SELECT TOP 5 ID FROM 支援日誌 WHERE " & _
28
40
 
29
41
  stFilter & " ORDER BY " & stSort & ")"
30
42
 
@@ -34,8 +46,30 @@
34
46
 
35
47
  Me.OrderByOn = True
36
48
 
49
+ End Sub
50
+
37
51
  ```
38
52
 
39
53
 
40
54
 
41
55
  FilterプロパティにはSQLのWHERE句に相当する条件式を設定できます。ということはサブクエリも使用可能です。サブクエリで、TOP 5 を使って先頭5件を抽出して、その結果をIn演算子で比較して抽出します。
56
+
57
+
58
+
59
+ 補足
60
+
61
+ ---
62
+
63
+ Excelは表計算ソフト、Accessはリレーショナルデータベース(略してRDB)ソフト、まったく別のものです。
64
+
65
+
66
+
67
+ RDBではSQLが必須です。Accessは初心者向けにSQLが分からなくてもクエリでビジュアルな操作でデータ操作ができます。しかし、クエリの中身はSQLです。SQLビューで確認できます。
68
+
69
+
70
+
71
+ 最初のうちはクエリでのデータ操作を学習しましょう。クエリを作成したら、SQLビューにしてどのようなSQLになっているか確認しましょう。そのうちなんとなく雰囲気が分かるようになってきますので、それからSQLの学習を始めるといいでしょう。
72
+
73
+
74
+
75
+ クエリだけではできることに限界がありますので、使いこなすうちにSQLは必要になってきます。

1

説明の修正

2019/07/11 18:45

投稿

hatena19
hatena19

スコア34353

test CHANGED
@@ -38,4 +38,4 @@
38
38
 
39
39
 
40
40
 
41
- FilterプロパティにはSQLのWHERE句に相当する条件式を設定できます。ということはサブクエリも使用可能です。サブクエリで、TOP 5 を使って先頭5件を抽出して、そのIn演算子で該当IDを抽出します。
41
+ FilterプロパティにはSQLのWHERE句に相当する条件式を設定できます。ということはサブクエリも使用可能です。サブクエリで、TOP 5 を使って先頭5件を抽出して、その結果をIn演算子で比較して抽出します。