質問編集履歴
2
内容を追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -46,13 +46,19 @@
|
|
46
46
|
|
47
47
|
※(2)(3)、(4)(5)はそれぞれを有効化し、結果をチェック済
|
48
48
|
|
49
|
-
しかしながら [*]アスタリスク と [?]クエスチョンマーク を
|
49
|
+
しかしながら、テキストボックスに [*]アスタリスク と [?]クエスチョンマーク を設定した場合、このデータだけが正常にデータ結果として表示されません。
|
50
50
|
|
51
51
|
※他の文字となる \ % _ などは(1)と同処理にて、正常にエスケープ処理ができ、データ結果も正常です
|
52
52
|
|
53
53
|
|
54
54
|
|
55
|
+
又、テキストボックスを参照せず、直接、以下のように値を設定すると正常なデータが表示されます。
|
55
56
|
|
57
|
+
```SQL
|
58
|
+
|
59
|
+
SELECT test.* FROM test WHERE test.a Like "*[*]*";
|
60
|
+
|
61
|
+
```
|
56
62
|
|
57
63
|
|
58
64
|
|
@@ -66,6 +72,6 @@
|
|
66
72
|
|
67
73
|
※[*]を指定しているはずが、[%]として実行されているので、これが原因だと思われます
|
68
74
|
|
69
|
-
色々検証をしていますが、
|
75
|
+
色々検証をしていますが、上記の[%]を[*]に設定するエスケープ処理が分かりません。
|
70
76
|
|
71
77
|
アドバイス頂けると助かります。
|
1
escape_replace自己関数の内容を追記しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,23 +14,49 @@
|
|
14
14
|
|
15
15
|
エスケープ文字に対応する為、escape_replace自己関数を作成し、エスケープ処理を行っています。
|
16
16
|
|
17
|
-
|
17
|
+
```VBA
|
18
18
|
|
19
|
-
|
19
|
+
Public Function escape_replace(myStr As String) As String
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
|
23
|
+
If myStr Like "*[]*" Then myStr= Replace(myStr, "\", "\") ' (1)
|
24
24
|
|
25
25
|
|
26
26
|
|
27
|
-
(
|
27
|
+
If myStr Like "*[*]*" Then myStr= Replace(myStr, "*", "[*]") ' (2)
|
28
28
|
|
29
|
-
(
|
29
|
+
If myStr Like "*[*]*" Then myStr= Replace(myStr, "*", "*") ' (3)
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
If myStr Like "*[?]*" Then myStr= Replace(myStr, "?", "[?]") ' (4)
|
34
|
+
|
35
|
+
If myStr Like "*[?]*" Then myStr= Replace(myStr, "?", "?") ' (5)
|
30
36
|
|
31
37
|
|
32
38
|
|
39
|
+
escape_replace= myStr
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
End Select
|
44
|
+
|
45
|
+
```
|
46
|
+
|
47
|
+
※(2)(3)、(4)(5)はそれぞれを有効化し、結果をチェック済
|
48
|
+
|
49
|
+
しかしながら [*]アスタリスク と [?]クエスチョンマーク を含んだデータだけが正常にデータ結果として表示されません。
|
50
|
+
|
51
|
+
※他の文字となる \ % _ などは(1)と同処理にて、正常にエスケープ処理ができ、データ結果も正常です
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
|
33
|
-
ログ(general_log)を確認したところ、上記の(
|
59
|
+
ログ(general_log)を確認したところ、上記の(2)に関しては、以下のクエリが実行されていました。
|
34
60
|
|
35
61
|
```ここに言語を入力
|
36
62
|
|