以前ここで 一致検索とNOT検索の方法を教えて頂きました。
Windows10 office365を使用中です。
自分なりに、転用して使用していたのですが、
この中に 処理月(yyyy/mm/dd)を yy/mm の年と月のみに表示して 期間自~期間至のように絞り込みも行いたいと考え、他の方の回答を参考に日付けを設定してみました。
二つのテキストボックスの「定型入力」プロパティは 99¥/99;0;_ にしました。
教えて頂いたのは 以下のVBAです。
Private Sub プレビュー_Click()
Dim strFilter As String
If Not IsNull(Me.年度検索) And Not IsNull(Me.年度検索2) Then
MsgBox "[指定年度]と[除く年度]を両方入力することはできません!"
Exit Sub
End If
If Not IsNull(Me.年度検索) Then
strFilter = strFilter & " AND 年度=" & Me.年度検索
End If
If Not IsNull(Me.月検索) Then
strFilter = strFilter & " AND 月=" & Me.月検索
End If
If Not IsNull(Me.年度検索2) Then
strFilter = strFilter & " AND 年度<>" & Me.年度検索2
End If
strFilter = Mid(strFilter, 6) '先頭の" AND"を削除
If DCount("*", "年度登録", strFilter) = 0 Then
MsgBox "該当するレコードはありません。"
Else
DoCmd.OpenReport "レポート名", acViewPreview, , strFilter
End If
End Sub
上記の中に追加したVBA
If Not IsNull(Me.期間自) Then
If Me.期間自 > Format(Date, "yy/mm") Then
strFilter = strFilter & " AND 処理日 >= #" & "19" & Nz(Me.期間自) & "#"
Else
strFilter = strFilter & " AND 処理日 >= #" & "20" & Nz(Me.期間自) & "#"
End If
End If
If Not IsNull(Me.期間至) Then
If Me.期間至 > Format(Date, "yy/mm") Then
strFilter = strFilter & " AND 処理日 < #" & DateAdd("m", 1, "19" & Me.期間至) & "#"
Else
strFilter = strFilter & " AND 処理日 < #" & DateAdd("m", 1, "20" & Me.期間至) & "#"
End If
End If
ここで、自分のPCでは動作するのですが、ある一台のPCだけ
日付でエラーが出てしまい、動作しません。
例えば 期間自テキストボックスに 20/04 期間至テキストボックスに 20/10 と入れた場合
実行時エラー‘3075’
クエリ式‘処理日>=#2020/04#AND処理日<#令2年11月1日(日)#AND年度=201’の日付の構文エラーです。
と、エラーになります。
同時期に購入したPCですので、設定も全く同じものなのに、どうして一台だけエラーになるのか、全くわからず困っています。
何か解決方法はございませんでしょうか?
よろしくお願いいたします。
OSの日付書式設定が他のPCと異なっているのが原因だと思われます。
OSの日付書式設定の影響を受けないようにFormatで書式を設定するといいでしょう。
この部分を下記に修正
早急にご回答頂きありがとうございます。
Formatで書式をし、動作確認を行いました。
エラーの出る一台を調べたところ、そのPCだけ日付書式設定が 和暦となっており、
こんなところに原因が!と考えてしまいました。
思うように動くようになり、本当に助かりました。
ありがとうございました。😊