回答編集履歴

1

追記

2018/03/20 09:47

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -1 +1,63 @@
1
1
  or演算子の前にスペースがありませんけど。
2
+
3
+
4
+
5
+ 追記
6
+
7
+ ---
8
+
9
+ テキストボックスが空の場合には値0の文字列となり、長さ0の文字列とは異なります。
10
+
11
+ どちらでも""として比較できるようですけど、Nullと合わせてややこしそうなので、
12
+
13
+ それらを一旦変数に格納してから、処理を行うように変更してみました。
14
+
15
+ ※条件組み立て部分も一部修正
16
+
17
+ ```VBA
18
+
19
+ Dim SearchFilter1 As String, SearchFilter2 As String
20
+
21
+ Dim ConditionsItem1 as string, ConditionsItem2 as string
22
+
23
+
24
+
25
+ ConditionsItem1 = IIF(IsNull(Me.TextBox1.Value),"", Me.TextBox1.Value)
26
+
27
+ ConditionsItem2 = IIF(IsNull(Me.TextBox2.Value),"", Me.TextBox2.Value)
28
+
29
+
30
+
31
+ 'それぞれのテキストボックスに抽出条件を設定
32
+
33
+ SearchFilter1 = ("姓 like '%" & ConditionsItem1 & "%'" & " OR セイ like '%" & ConditionsItem1 & "%'")
34
+
35
+ SearchFilter2 = ("電話番号1 like '%" & ConditionsItem2 & "%'" & " OR 電話番号2 like '%" & ConditionsItem2 & "%'")
36
+
37
+
38
+
39
+ 'それぞれのテキストボックスへの入力の有無により条件分岐
40
+
41
+ If ConditionsItem1 = "" And ConditionsItem2 = "" Then 'どちらも未入力の場合
42
+
43
+ Call CutDB
44
+
45
+ MsgBox "テキストボックスに条件を入力してください。"
46
+
47
+ Exit Sub
48
+
49
+ ElseIf ConditionsItem1 <> "" And ConditionsItem2 <> "" Then 'どちらにも入力されている場合
50
+
51
+ adoRs.filter = "(" & SearchFilter1 & ") AND (" & SearchFilter2 & ")" '←括弧で括る
52
+
53
+ ElseIf ConditionsItem1 <> "" And ConditionsItem2 = "" Then 'TextBox1のみ入力されている場合
54
+
55
+ adoRs.filter = SearchFilter1
56
+
57
+ ElseIf ConditionsItem1 = "" And ConditionsItem2 <> "" Then 'TextBox2のみ入力されている場合
58
+
59
+ adoRs.filter = SearchFilter2
60
+
61
+ End If
62
+
63
+ ```