前提・実現したいこと
accessで検索フォームを作っています。
すべて含むもしくは一部含むような検索フォームです。
発生している問題・エラーメッセージ
商品コード開始と終了の部分がエラーが起きてしまい、いくつか調べてためしてみたましたが、解決しません。
やりたいことは商品コードはテキスト型で数字のみです。(頭に0がつくため)
検索できるようクエリを作ってそれをもとに検索しています。
要望として「商品コード開始」と「商品コード終了」の項目には「商品コード開始」のみに入力されていても検索ができるように
または「商品コード開始」と「商品コード終了」を入れるとその範囲内のコードが表示されるようにしたいです。いくら調べて、考えても解決できませんでした。
追記:商品コードの開始と終了は解決しました。ありがとうございます。ただ年月度を入れると検索ができなくなってしまったのですが、
この場合年月度はテキスト型なので同じようにしたのでは間違いになるのでしょうか。
会社の要望としては年月度だけでの検索もできるようにしたいし、年月度と商品コード、担当者などをいれても検索が動くようにしてほしいということなのですが、別に作ったほうが良いのでしょうか?それとも年月度はあきらめてもらうほうがいいのでしょうか。
ちなみに元となっているテーブルはCSVからデータを読み込む関係ですべてテキスト型になっています。
該当のソースコード
AccessVBA
1 2 If Not IsNull(Me.開始年月度) And Not IsNull(Me.終了年月度) Then 3strFilter = " AND 年月度 >= '" & Me.開始年月度 & "' AND 年月度 <= '" & Me.終了年月度 & "'" 4ElseIf Not IsNull(Me.開始年月度) Then 5strFilter = " AND 年月度 = '" & Me.開始年月度 & "'" 6End If 7 8 If Not IsNull(Me.tx請求先名) Then 9 strFilter = strFilter & " AND 請求先名 Like '*" & Me.tx請求先名 & "*'" 10 End If 11 12 If Not IsNull(Me.得意先名) Then 13 strFilter = strFilter & " AND 得意先名1 Like '*" & Me.得意先名 & "*'" 14 End If 15 16 If Not IsNull(Me.商品コード開始) And Not IsNull(Me.商品コード終了) Then 17strFilter = " AND 商品コード >= '" & Me.商品コード開始 & "' AND 商品コード <= '" & Me.商品コード終了 & "'" 18ElseIf Not IsNull(Me.商品コード開始) Then 19strFilter = " AND 商品コード = '" & Me.商品コード開始 & "'" 20End If 21 22 23 If Not IsNull(Me.tx商品名) Then 24 strFilter = strFilter & " AND 商品名 Like '*" & Me.tx商品名 & "*'" 25 End If 26 27 If Not IsNull(Me.tx担当者名) Then 28 strFilter = strFilter & " AND 担当者名 Like '*" & Me.tx担当者名 & "*'" 29 End If 30 31 32 Me.Filter = Mid(strFilter, 6) 33 If strFilter = "" Then 34 Me.FilterOn = False 35 Else 36 Me.FilterOn = True 37 End If 38End Sub
試したこと
between以外に
If Not IsNull(Me.商品コード開始) And IsNull(Me.商品コード終了) Then
strFilter = " AND 商品コード >= #" & Me.商品コード開始 & "# AND 商品コード <= #" & Me.商品コード終了 & "#"
End If
も試してみました←こちらの件は解決しました。
回答1件
あなたの回答
tips
プレビュー