teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

年月度についての追記をしました。

2021/04/14 10:06

投稿

yazu-0809
yazu-0809

スコア6

title CHANGED
File without changes
body CHANGED
@@ -10,20 +10,22 @@
10
10
  要望として「商品コード開始」と「商品コード終了」の項目には「商品コード開始」のみに入力されていても検索ができるように
11
11
  または「商品コード開始」と「商品コード終了」を入れるとその範囲内のコードが表示されるようにしたいです。いくら調べて、考えても解決できませんでした。
12
12
 
13
+ 追記:商品コードの開始と終了は解決しました。ありがとうございます。ただ年月度を入れると検索ができなくなってしまったのですが、
14
+ この場合年月度はテキスト型なので同じようにしたのでは間違いになるのでしょうか。
15
+ 会社の要望としては年月度だけでの検索もできるようにしたいし、年月度と商品コード、担当者などをいれても検索が動くようにしてほしいということなのですが、別に作ったほうが良いのでしょうか?それとも年月度はあきらめてもらうほうがいいのでしょうか。
16
+ ちなみに元となっているテーブルはCSVからデータを読み込む関係ですべてテキスト型になっています。
13
17
 
18
+
14
19
  ### 該当のソースコード
15
20
 
16
21
  ```AccessVBA
17
- Private Sub 検索_Click()
18
22
 
19
- Dim strFilter As String
20
-
21
-
22
- If IsDate(Me.開始年月度) And IsDate(Me.終了年月度) Then
23
+ If Not IsNull(Me.開始年月度) And Not IsNull(Me.終了年月度) Then
23
- strFilter = " AND 年月度 >= #" & Me.開始年月度 & "# AND 年月度 <= #" & Me.終了年月度 & "#"
24
+ strFilter = " AND 年月度 >= '" & Me.開始年月度 & "' AND 年月度 <= '" & Me.終了年月度 & "'"
25
+ ElseIf Not IsNull(Me.開始年月度) Then
26
+ strFilter = " AND 年月度 = '" & Me.開始年月度 & "'"
24
27
  End If
25
28
 
26
-
27
29
  If Not IsNull(Me.tx請求先名) Then
28
30
  strFilter = strFilter & " AND 請求先名 Like '*" & Me.tx請求先名 & "*'"
29
31
  End If
@@ -32,10 +34,12 @@
32
34
  strFilter = strFilter & " AND 得意先名1 Like '*" & Me.得意先名 & "*'"
33
35
  End If
34
36
 
35
- If Not IsNull(Me.商品コード開始) And IsNull(Me.商品コード終了) Then
37
+ If Not IsNull(Me.商品コード開始) And Not IsNull(Me.商品コード終了) Then
38
+ strFilter = " AND 商品コード >= '" & Me.商品コード開始 & "' AND 商品コード <= '" & Me.商品コード終了 & "'"
36
- strFilter = Between Me.商品コード開始 And Me.商品コード終了
39
+ ElseIf Not IsNull(Me.商品コード開始) Then
40
+ strFilter = " AND 商品コード = '" & Me.商品コード開始 & "'"
37
- End If   'ここでエラーが出ます
41
+ End If
38
-
42
+
39
43
 
40
44
  If Not IsNull(Me.tx商品名) Then
41
45
  strFilter = strFilter & " AND 商品名 Like '*" & Me.tx商品名 & "*'"
@@ -61,4 +65,4 @@
61
65
  If Not IsNull(Me.商品コード開始) And IsNull(Me.商品コード終了) Then
62
66
  strFilter = " AND 商品コード >= #" & Me.商品コード開始 & "# AND 商品コード <= #" & Me.商品コード終了 & "#"
63
67
  End If
64
- も試してみました
68
+ も試してみました←こちらの件は解決しました。