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

回答編集履歴

3

式修正、コード追記

2020/11/12 02:14

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -43,4 +43,33 @@
43
43
 
44
44
  テキストボックス「前発令日」「前部署」は上記の説明のままで、テキストボックス「辞令」のコントロールソースを下記のように設定します。
45
45
 
46
- `= Replace(Replace(Replace([辞令文],"{発令日}",=Format([発令日],"yyyy年m月d日")),"{前部署}",[前部署]),"{異動部署}",[異動部署])`
46
+ `= Replace(Replace(Replace([辞令文],"{発令日}",Format([発令日],"yyyy年m月d日")),"{前部署}",[前部署]),"{異動部署}",[異動部署])`
47
+
48
+ ---
49
+ ちなみに、上記では前部署を取得するのにDMax関数、DLOokup関数を使いましたが、サブクエリを使って同様に取得することもできます。SQLが理解できるならこれでもいいでしょう。
50
+
51
+ ```sql
52
+ SELECT
53
+ a.*,
54
+ 異動履歴.異動部署 AS 前部署
55
+ FROM
56
+ (
57
+ SELECT b.社員番号, b.異動部署, b.発令日,Max(c.発令日) AS 前発令日
58
+ FROM 異動履歴 AS b INNER JOIN 異動履歴 AS c ON b.社員番号 = c.社員番号
59
+ WHERE c.発令日 < b.発令日
60
+ GROUP BY b.社員番号, b.異動部署, b.発令日
61
+ ) AS a
62
+ INNER JOIN 異動履歴 As d
63
+ ON a.前発令日 = d.発令日 AND a.社員番号 = d.社員番号;
64
+ ```
65
+  
66
+ あるいは、
67
+ ```sql
68
+ SELECT
69
+ b.*,
70
+ ( SELECT TOP 1 異動部署 FROM 移動履歴 AS b
71
+ WHERE a.社員番号 = b.社員番号 AND a.発令日 < b.発令日
72
+ ORDER BY 発令日 DESC
73
+ ) AS 前部署
74
+ FROM 異動履歴 AS a;
75
+ ```

2

説明の改善

2020/11/12 02:14

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -41,6 +41,6 @@
41
41
 
42
42
  このテーブルをレポートのレコードソースのクエリに追加します。連結はしません。
43
43
 
44
- 上記のテキストボックスのコントロールソースを下記のように設定します。
44
+ テキストボックス「前発令日」「前部署」は上記の説明のままで、テキストボックス「辞令」のコントロールソースを下記のように設定します。
45
45
 
46
46
  `= Replace(Replace(Replace([辞令文],"{発令日}",=Format([発令日],"yyyy年m月d日")),"{前部署}",[前部署]),"{異動部署}",[異動部署])`

1

説明追記

2020/11/12 01:06

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -20,4 +20,27 @@
20
20
 
21
21
  ---
22
22
 
23
- 以上です。
23
+ 以上です。
24
+
25
+ 辞令文を自由に入力、編集したい場合
26
+ ---
27
+
28
+ 辞令文格納用のテーブルを作成します。テーブル名「辞令文マスター」
29
+ フィールドの型は「長いテキスト」にします。フィールド名「辞令文」
30
+
31
+ このテーブルをレコードソースとするフォームを作成して、テキストボックスを配置してコントロールソースは「辞令文」にします。
32
+ このフォームを保存します。名前は「F_辞令文」とします。
33
+
34
+ フォームを開いて辞令文を入力します。
35
+ 入力例
36
+ ```text
37
+ {発令日}をもって{前部署}から{異動部署}の勤務を命じます。
38
+ ```
39
+ 改行も入力可です。{発令日} {前部署} {異動部署} というように参照する項目を{}で囲むのがポイントです。
40
+ {}でなくても 【】とか[]とかでもいいです。
41
+
42
+ このテーブルをレポートのレコードソースのクエリに追加します。連結はしません。
43
+
44
+ 上記のテキストボックスのコントロールソースを下記のように設定します。
45
+
46
+ `= Replace(Replace(Replace([辞令文],"{発令日}",=Format([発令日],"yyyy年m月d日")),"{前部署}",[前部署]),"{異動部署}",[異動部署])`