回答編集履歴

3

式修正、コード追記

2020/11/12 02:14

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -88,4 +88,62 @@
88
88
 
89
89
 
90
90
 
91
- `= Replace(Replace(Replace([辞令文],"{発令日}",=Format([発令日],"yyyy年m月d日")),"{前部署}",[前部署]),"{異動部署}",[異動部署])`
91
+ `= Replace(Replace(Replace([辞令文],"{発令日}",Format([発令日],"yyyy年m月d日")),"{前部署}",[前部署]),"{異動部署}",[異動部署])`
92
+
93
+
94
+
95
+ ---
96
+
97
+ ちなみに、上記では前部署を取得するのにDMax関数、DLOokup関数を使いましたが、サブクエリを使って同様に取得することもできます。SQLが理解できるならこれでもいいでしょう。
98
+
99
+
100
+
101
+ ```sql
102
+
103
+ SELECT
104
+
105
+ a.*,
106
+
107
+ 異動履歴.異動部署 AS 前部署
108
+
109
+ FROM
110
+
111
+ (
112
+
113
+ SELECT b.社員番号, b.異動部署, b.発令日,Max(c.発令日) AS 前発令日
114
+
115
+ FROM 異動履歴 AS b INNER JOIN 異動履歴 AS c ON b.社員番号 = c.社員番号
116
+
117
+ WHERE c.発令日 < b.発令日
118
+
119
+ GROUP BY b.社員番号, b.異動部署, b.発令日
120
+
121
+ ) AS a
122
+
123
+ INNER JOIN 異動履歴 As d
124
+
125
+ ON a.前発令日 = d.発令日 AND a.社員番号 = d.社員番号;
126
+
127
+ ```
128
+
129
+  
130
+
131
+ あるいは、
132
+
133
+ ```sql
134
+
135
+ SELECT
136
+
137
+ b.*,
138
+
139
+ ( SELECT TOP 1 異動部署 FROM 移動履歴 AS b
140
+
141
+ WHERE a.社員番号 = b.社員番号 AND a.発令日 < b.発令日
142
+
143
+ ORDER BY 発令日 DESC
144
+
145
+ ) AS 前部署
146
+
147
+ FROM 異動履歴 AS a;
148
+
149
+ ```

2

説明の改善

2020/11/12 02:14

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -84,7 +84,7 @@
84
84
 
85
85
 
86
86
 
87
- 上記のテキストボックスのコントロールソースを下記のように設定します。
87
+ テキストボックス「前発令日」「前部署」は上記の説明のままで、テキストボックス「辞令」のコントロールソースを下記のように設定します。
88
88
 
89
89
 
90
90
 

1

説明追記

2020/11/12 01:06

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -43,3 +43,49 @@
43
43
 
44
44
 
45
45
  以上です。
46
+
47
+
48
+
49
+ 辞令文を自由に入力、編集したい場合
50
+
51
+ ---
52
+
53
+
54
+
55
+ 辞令文格納用のテーブルを作成します。テーブル名「辞令文マスター」
56
+
57
+ フィールドの型は「長いテキスト」にします。フィールド名「辞令文」
58
+
59
+
60
+
61
+ このテーブルをレコードソースとするフォームを作成して、テキストボックスを配置してコントロールソースは「辞令文」にします。
62
+
63
+ このフォームを保存します。名前は「F_辞令文」とします。
64
+
65
+
66
+
67
+ フォームを開いて辞令文を入力します。
68
+
69
+ 入力例
70
+
71
+ ```text
72
+
73
+ {発令日}をもって{前部署}から{異動部署}の勤務を命じます。
74
+
75
+ ```
76
+
77
+ 改行も入力可です。{発令日} {前部署} {異動部署} というように参照する項目を{}で囲むのがポイントです。
78
+
79
+ {}でなくても 【】とか[]とかでもいいです。
80
+
81
+
82
+
83
+ このテーブルをレポートのレコードソースのクエリに追加します。連結はしません。
84
+
85
+
86
+
87
+ 上記のテキストボックスのコントロールソースを下記のように設定します。
88
+
89
+
90
+
91
+ `= Replace(Replace(Replace([辞令文],"{発令日}",=Format([発令日],"yyyy年m月d日")),"{前部署}",[前部署]),"{異動部署}",[異動部署])`