質問編集履歴
3
1
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -6,29 +6,21 @@
|
|
|
6
6
|
|
|
7
7
|
### 課題
|
|
8
8
|
|
|
9
|
-
ある程度、ユーザーが動的にコンボボックスを追加できるように、
|
|
10
|
-
|
|
9
|
+
分割フォームを利用して、右側のテーブル = 左側のフォーム上のグラフを連動させたいと思っています。
|
|
11
10
|
|
|
12
|
-
最終的には、下記のフィルタ条件を、関数で作成してフィルタをかけようとしています。
|
|
13
|
-
|
|
14
|
-
しかしながら、うまく動いてくれません。
|
|
15
|
-
|
|
16
11
|
###質問内容
|
|
17
12
|
|
|
18
|
-
|
|
13
|
+
複数のフィルタリング条件が考えられるため、AND条件の検索が必要です。
|
|
19
|
-
|
|
14
|
+
使用するユーザーが動的にコンボボックスを追加できるように、
|
|
15
|
+
コンボボックスのコントロールソースから、フィルタ条件を関数で作成してフィルタをかけています。
|
|
20
16
|
|
|
21
|
-
|
|
17
|
+
データのフィルタリングはまでは、できてはいるのですが、
|
|
22
|
-
|
|
18
|
+
この先のやり方が見えずに、今の方法に疑問を感じています。
|
|
23
19
|
|
|
20
|
+
もっとほかに、かしこいやり方があったら教えて欲しいのでしょうか?
|
|
24
|
-
|
|
21
|
+
(以上で、だいたいの私のやりたいイメージをお伝えできていると思いますが・・・)
|
|
25
|
-
グラフのコントロールソース式をどうしたらいいのか、これも課題になっています。
|
|
26
22
|
|
|
27
|
-
以上で、私のやりたいことを、伝えられましたでしょうか?
|
|
28
23
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
24
|
```VBA
|
|
33
25
|
|
|
34
26
|
フォームのフィルタ条件
|
2
1
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -68,10 +68,8 @@
|
|
|
68
68
|
Option Compare Database
|
|
69
69
|
Option Explicit
|
|
70
70
|
|
|
71
|
-
Const CmbNo As String = "CmbNo"
|
|
72
|
-
Const CmbPad As String = "Pad"
|
|
73
|
-
Const CmbTest As String = "CmbTest"
|
|
74
71
|
|
|
72
|
+
|
|
75
73
|
Public Sub Set_Fileter(Form As Variant)
|
|
76
74
|
Dim key
|
|
77
75
|
Dim filt: filt = ""
|
|
@@ -83,7 +81,7 @@
|
|
|
83
81
|
If .ControlType = acComboBox Then
|
|
84
82
|
Debug.Print .RowSource
|
|
85
83
|
|
|
86
|
-
key = Replace(正規表現(.RowSource, "
|
|
84
|
+
key = Replace(Replace(正規表現(.RowSource, "SELECT .+ FROM").Item(0).Value, " FROM", ""), "SELECT ", "")
|
|
87
85
|
If Not IsNull(.Value) Then filt = filt & " " & key & "='" & .Value & "' AND "
|
|
88
86
|
i = i + 1
|
|
89
87
|
End If
|
|
@@ -98,4 +96,18 @@
|
|
|
98
96
|
End Sub
|
|
99
97
|
|
|
100
98
|
|
|
99
|
+
|
|
100
|
+
Function 正規表現(msg As String, strPattern As String) As Object
|
|
101
|
+
Dim RE As Object
|
|
102
|
+
Set RE = CreateObject("VBScript.RegExp")
|
|
103
|
+
With RE
|
|
104
|
+
.Pattern = strPattern ''検索パターンを設定
|
|
105
|
+
.IgnoreCase = True ''大文字と小文字を区別しない
|
|
106
|
+
.Global = True ''文字列全体を検索
|
|
107
|
+
Set 正規表現 = .Execute(msg)
|
|
108
|
+
End With
|
|
109
|
+
End Function
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
101
113
|
```
|
1
1
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
|
|
34
34
|
フォームのフィルタ条件
|
|
35
35
|
|
|
36
|
-
[グラフデータ].Pad='167_169' AND [グラフデータ].試験名='サーマルサイクル(TC)' AND [
|
|
36
|
+
[グラフデータ].Pad='167_169' AND [グラフデータ].試験名='サーマルサイクル(TC)' AND [グラフデータ].NO='101'
|
|
37
37
|
|
|
38
38
|
```
|
|
39
39
|
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
|
|
45
45
|
SELECT [グラフデータ].Pad FROM グラフデータ;
|
|
46
46
|
SELECT [グラフデータ].試験名 FROM グラフデータ GROUP BY [グラフデータ].試験名;
|
|
47
|
-
SELECT
|
|
47
|
+
SELECT [グラフデータ].NO FROM グラフデータ GROUP BY [グラフデータ].NO;
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
|