回答編集履歴

3

補足追記

2019/12/06 05:13

投稿

hatena19
hatena19

スコア34073

test CHANGED
@@ -87,3 +87,35 @@
87
87
  この方がシンプルに記述できます。
88
88
 
89
89
  上記の書き方を理解して、フィールドのデータ型に合わせて書き換えて下さい。
90
+
91
+
92
+
93
+ 補足
94
+
95
+ ---
96
+
97
+ 今回の質問のようなシンプルな条件の場合はBuildCriteriaを使わずに記述した方かすっきりします。
98
+
99
+ BuildCriteriaの使いどころとしては、例えばユーザーに下記のような複雑な条件を許可するようなときに有効です。
100
+
101
+ ```vba
102
+
103
+ strKey = "*あいう*"
104
+
105
+ strFilter = BuildCriteria("テキストフィールド", dbText, strKey)
106
+
107
+ Debug.Print strFilter ' "テキストフィールド Like '*あいう*'"
108
+
109
+
110
+
111
+ strKey = "あ or い or う"
112
+
113
+ strFilter = BuildCriteria("テキストフィールド", dbText, strKey)
114
+
115
+ Debug.Print strFilter ' "テキストフィールド = 'あ' OR テキストフィールド = 'い' OR テキストフィールド = 'う'"
116
+
117
+ ```
118
+
119
+
120
+
121
+ クエリの抽出条件欄に式を記述した時に生成されるSQLと同じような変換をしてくれます。

2

誤字修正

2019/12/06 05:13

投稿

hatena19
hatena19

スコア34073

test CHANGED
@@ -60,7 +60,7 @@
60
60
 
61
61
  今回の場合は BuildCriteria を使わなくてもシンプルに記述できます。
62
62
 
63
- その方かコードが理解しやすいと思います。
63
+ その方かコードが理解しやすいと思います。
64
64
 
65
65
 
66
66
 
@@ -80,6 +80,10 @@
80
80
 
81
81
  ```
82
82
 
83
+ テキスト型は条件の値を'で囲む。数値型は囲まないということです。
84
+
85
+
86
+
83
87
  この方がシンプルに記述できます。
84
88
 
85
89
  上記の書き方を理解して、フィールドのデータ型に合わせて書き換えて下さい。

1

コード追記

2019/12/06 03:06

投稿

hatena19
hatena19

スコア34073

test CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  ```vba
4
4
 
5
- BuildCriteria("案件ID", _
5
+ strFilter = " AND " & BuildCriteria("担当事務員ID", _
6
6
 
7
- dbLong, Me.txt案件ID)
7
+ dbLong, Me.cmd事務員ID)
8
8
 
9
9
  ```
10
10
 
@@ -12,13 +12,15 @@
12
12
 
13
13
  ```vba
14
14
 
15
- BuildCriteria("案件ID", _
15
+ strFilter = " AND " & BuildCriteria("担当事務員ID", _
16
16
 
17
- dbText, Me.txt案件ID)
17
+ dbText, Me.cmd事務員ID)
18
18
 
19
19
  ```
20
20
 
21
- にしてください。
21
+ にしてください。第2引数は、テキスト型は dbText 、数値型は dbLong を指定します。
22
+
23
+
22
24
 
23
25
  イミディエイトウィンドウで下記のように確認してみると違いが分かります。
24
26
 
@@ -47,3 +49,37 @@
47
49
 
48
50
 
49
51
  これはsaziさんの回答でOK。
52
+
53
+
54
+
55
+ 追記
56
+
57
+ ---
58
+
59
+ フィールドのデータ型で条件式がかわってきます。
60
+
61
+ 今回の場合は BuildCriteria を使わなくてもシンプルに記述できます。
62
+
63
+ その方かコードが理解しやすいしと思います。
64
+
65
+
66
+
67
+ 対象フィールドがテキスト型の場合
68
+
69
+ ```vba
70
+
71
+ strFilter = " AND フィールド名='" & Me.コントロール名 & "'"
72
+
73
+ ```
74
+
75
+ 対象フィールドが数値型の場合
76
+
77
+ ```vba
78
+
79
+ strFilter = " AND フィールド名=" & Me.コントロール名
80
+
81
+ ```
82
+
83
+ この方がシンプルに記述できます。
84
+
85
+ 上記の書き方を理解して、フィールドのデータ型に合わせて書き換えて下さい。