質問するログイン新規登録

回答編集履歴

2

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

2019/07/11 18:45

投稿

hatena19
hatena19

スコア34367

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

1

説明の修正

2019/07/11 18:45

投稿

hatena19
hatena19

スコア34367

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