質問編集履歴

2

sazi様のアドバイスを元に追記2

2018/09/27 15:58

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -14,25 +14,37 @@
14
14
 
15
15
 
16
16
 
17
- マスタテーブル
17
+ テーブル1
18
18
 
19
- |区分|番号|
19
+ |ID|区分|番号|
20
20
 
21
- |:--|:--:|
21
+ |:--|:--:|:--:|
22
22
 
23
- |あああ|1|
23
+ |1|あああ|1|
24
24
 
25
- |あああ|2|
25
+ |2|あああ|2|
26
26
 
27
- |あああ|3|
27
+ |3|あああ|3|
28
28
 
29
- |あああ|4|
29
+ |4|あああ|4|
30
30
 
31
- |いいい|1|
31
+ |5|いいい|1|
32
32
 
33
- |いいい|2|
33
+ |6|いいい|2|
34
34
 
35
- |いいい|3|
35
+ |7|いいい|3|
36
+
37
+ |8|あああ|5|
38
+
39
+ |9|あああ|6|
40
+
41
+ |10|あああ|7|
42
+
43
+ |11|あああ|8|
44
+
45
+ |12|あああ|9|
46
+
47
+ |13|あああ|10|
36
48
 
37
49
 
38
50
 
@@ -40,7 +52,7 @@
40
52
 
41
53
  [区分][区分を選択するコンボボックス][検索ボタン]
42
54
 
43
- たとえば、ユーザーが[あああ]を選択した場合・・・
55
+ たとえば、ユーザーが[あ]を選択した場合・・・
44
56
 
45
57
 
46
58
 
@@ -52,11 +64,15 @@
52
64
 
53
65
  |□No.1|□No.2|□No.3|
54
66
 
67
+ |□No.4|□No.5|□No.6|
68
+
69
+ |□No.7|□No.8|□No.9|
70
+
55
- |□No.4|||||
71
+ |□No.10|||
56
72
 
57
73
 
58
74
 
59
- ※実際には[あああ]の中には1~1000程度のデータが有り、縦に一直線に並べると長くなりすぎるので20列程度の二次元に表示することでスクロール量を抑えたいという目的です。
75
+ ※実際には[あ]の中には1~1000程度のデータが有り、縦に一直線に並べると長くなりすぎるので20列程度の二次元に表示することでスクロール量を抑えたいという目的です。
60
76
 
61
77
  ※□はチェックボックスを置き、No.1等のラベルにはハイパーリンクを設定する予定で考えていますので、実装に影響を与えない方法である必要があります。
62
78
 
@@ -76,9 +92,41 @@
76
92
 
77
93
 
78
94
 
79
- ### 追記
95
+ ### 以下、sazi様のアドバイスを元に追記したもの
80
96
 
97
+
98
+
99
+ ### 理想のクエリの実行結果
100
+
101
+ 選択クエリ
102
+
81
- sazi様の提案を元に想像したサブフォームのクエリ
103
+ |ID|区分|番号|COL|ROW|
104
+
105
+ |:--|:--:|--:|
106
+
107
+ |1|あ|1|1|1|
108
+
109
+ |2|あ|2|2|1|
110
+
111
+ |3|あ|3|3|1|
112
+
113
+ |4|あ|4|1|2|
114
+
115
+ |5|あ|5|2|2|
116
+
117
+ |6|あ|6|3|2|
118
+
119
+ |7|あ|7|1|3|
120
+
121
+ |8|あ|8|2|3|
122
+
123
+ |9|あ|9|3|3|
124
+
125
+ |10|あ|10|1|4|
126
+
127
+
128
+
129
+ クロス集計クエリ
82
130
 
83
131
  |ID|番号1|番号2|番号3|CHK1|CHK2|CHK3|
84
132
 
@@ -86,14 +134,56 @@
86
134
 
87
135
  |1|1|2|3|false|false|false|
88
136
 
137
+ |2|4|5|6|false|false|false|
138
+
139
+ |3|7|8|9|false|false|false|
140
+
89
- |2|4|||false||
141
+ |4|10|||false||
90
142
 
91
143
 
92
144
 
93
- [区分]でフィルタした結果のレコード番号をnとした時
145
+ ### 作成したクエリ
94
146
 
95
- 列名:"番号"&(n Mod 3)+1と"CHK"&(n Mod 3)+1
147
+ ![イメージ説明](1f1da6ef4038cf9cefc6837832cd32c0.png)
96
148
 
97
- 行番号(ID):Int(n/3)
149
+ ※[区分]をフィルタするパラメータを[P区分]で設定しています。
98
150
 
151
+ ※クロス集計クエリはまだ動作検証できていません。
152
+
153
+
154
+
155
+ ### 実際の実行結果
156
+
157
+ 選択クエリの実行結果
158
+
159
+ |ID|区分|番号|COL|ROW|
160
+
161
+ |:--|:--:|--:|
162
+
163
+ 1|あ|1|連番1|1
164
+
165
+ 10|あ|7|連番1|4
166
+
167
+ 11|あ|8|連番2|4
168
+
169
+ 12|あ|9|連番3|4
170
+
171
+ 13|あ|10|連番1|5
172
+
173
+ 2|あ|2|連番2|1
174
+
175
+ 3|あ|3|連番3|1
176
+
177
+ 4|あ|4|連番1|2
178
+
179
+ 8|あ|5|連番2|3
180
+
181
+ 9|あ|6|連番3|3
182
+
183
+
184
+
185
+ ### 問題点
186
+
99
- のような感じになるのかと予想ていすが、nの部分に該当する式と実装方法が不明
187
+ ・IDが文字列型で出力されてしまう。Int囲っても変化無しでした
188
+
189
+ ・IDが連番にならない。

1

sazi様の提案を元に想像したサブフォームのクエリ

2018/09/27 15:58

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -62,6 +62,8 @@
62
62
 
63
63
 
64
64
 
65
+
66
+
65
67
  クエリでは不可能/遅いのでVBAのほうが良いということであれば、バッサリ切っていただいて構いません。
66
68
 
67
69
  SQLを組む場合のヒントがあれば、教えて頂けると助かります。
@@ -71,3 +73,27 @@
71
73
  ### 補足情報
72
74
 
73
75
  Access 2016 32bit / Windows10
76
+
77
+
78
+
79
+ ### 追記
80
+
81
+ sazi様の提案を元に想像したサブフォームのクエリ
82
+
83
+ |ID|番号1|番号2|番号3|CHK1|CHK2|CHK3|
84
+
85
+ |:--|:--:|:--:|:--:|:--:|:--:|--:|
86
+
87
+ |1|1|2|3|false|false|false|
88
+
89
+ |2|4|||false||
90
+
91
+
92
+
93
+ [区分]でフィルタした結果のレコード番号をnとした時
94
+
95
+ 列名:"番号"&(n Mod 3)+1と"CHK"&(n Mod 3)+1
96
+
97
+ 行番号(ID):Int(n/3)
98
+
99
+ のような感じになるのかと予想していますが、nの部分に該当する式と実装方法が不明です。