前提・実現したいこと
先日、Accessで検索フォームについて質問させていただきました。
今回はテーブルを元にクエリを作成し、そこに1つ新しく作った分類テーブルを追加で表示できるようにし、
クエリで表示しています。
そのクエリを元に前回と同じように、検索する項目は変わらない内容で検索できるようフォームを作成しました。
発生している問題・エラーメッセージ
クエリを元にフォームを作成すると、1回目はちゃんと抽出してくれましたが、保存して、別のフォーム条件を入力すると
検索できなくなります。
例:1回目 開始年月度 2020/03 終了年月度 2020/04では抽出されて表示される。
保存して2回目の検索をした時 開始年月度2019/03 終了年月度 2019/04では表示されない。
フォーム上で見えている表形式のクエリを見ると2020/03~2020/04のデータが表示されている。
別にクエリを作成 1回目 開始年月度 2019/03 終了年月度 2019/04 では問題なし。
保存して2回目の検索をした時 開始年月度2020/03 終了年月度 2020/04では 表示されない。
フォーム上で見えている表形式のクエリを見ると2019/03~2019/04のデータが表示されている。
該当のソースコード
VBA
1Private Sub 検索_Click() 2 3Dim strFilter As String 4 5 6 7 If Not IsNull(Me.開始年月度) And Not IsNull(Me.終了年月度) Then 8strFilter = strFilter & " AND 年月度 >= '" & Me.開始年月度 & "' AND 年月度 <= '" & Me.終了年月度 & "'" 9ElseIf Not IsNull(Me.開始年月度) Then 10strFilter = strFilter & " AND 年月度 = '" & Me.開始年月度 & "'" 11End If 12 13 14 15 If Not IsNull(Me.tx請求先名) Then 16 strFilter = strFilter & " AND 請求先名 Like '*" & Me.tx請求先名 & "*'" 17 End If 18 19 If Not IsNull(Me.得意先名) Then 20 strFilter = strFilter & " AND 得意先名1 Like '*" & Me.得意先名 & "*'" 21 End If 22 23 If Not IsNull(Me.商品コード開始) And Not IsNull(Me.商品コード終了) Then 24strFilter = strFilter & " AND 商品コード >= '" & Me.商品コード開始 & "' AND 商品コード <= '" & Me.商品コード終了 & "'" 25ElseIf Not IsNull(Me.商品コード開始) Then 26strFilter = strFilter & " AND 商品コード = '" & Me.商品コード開始 & "'" 27End If 28 29 If Not IsNull(Me.tx商品名) Then 30 strFilter = strFilter & " AND 商品名 Like '*" & Me.tx商品名 & "*'" 31 End If 32 33 If Not IsNull(Me.tx担当者名) Then 34 strFilter = strFilter & " AND 担当者名 Like '*" & Me.tx担当者名 & "*'" 35 End If 36 37 38 Me.Filter = Mid(strFilter, 6) 39 If strFilter = "" Then 40 Me.FilterOn = False 41 Else 42 Me.FilterOn = True 43 End If 44End Sub 45
試したこと
該当するクエリでは全件表示されている。またクエリ上ではBetweenを使って検索出来ているが、フォームになると
うまくいかないので
解除マクロ
Me.Requery
を作成。ただし抽出がリセットされない。
もう1つ検索条件をリセットする
Dim clear As Control
On Error Resume Next
For Each clear In Me.Controls
With clear
If .ControlType = acTextBox Then
.Value = ""
End If
End With
Next clear
でもリセットできず・・・
どうしたらよいでしょうか?
問題点は一度フォーム上で抽出した内容をクエリで覚えてしまっていると考えています。
全件を表示する方法はあるのでしょうか。調べても出てきませんでした。
また別件ですが、Accessでインポート操作の記録をしたマクロを作って、トップ画面にボタンで登録していますが、
この実行履歴をトップ画面で作成したフォームの中に表示することはできますでしょうか?
FileDateTime関数を使うのかなと思いましたが、これだとファイルを指定することになるので・
ただのマクロの実行日時記録はどう表示するのかなと思いました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。