![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
実行エラー 3075:クエリ式`作成日 の間#2010/10/01# AND #2010/10/30#の構文エラー:演算子というエラーの処理をどうすればいいか分かりませんので教えてほしいです。
Private Sub cmdFilter_Click()
Dim strSQL As String
Dim strCriteria As String
With Me
If Len(.cboFieldName) <> 0 Then
If Len(.cboCondition) <> 0 Then
strCriteria = BuildCriteria(.cboFieldName.Column(0), _
.cboFieldName.Column(1), .cboCondition, _
Nz(.txtValue1), Nz(.txtValue2))
End If
End If
End With
With Me
ここはエラー→ .Filter = strCriteria
.FilterOn = True
.Requery
End With
Private Function BuildCriteria(strFieldName As String, _
intType As Integer, _
strCondition As String, _
varValue1 As Variant, _
Optional varValue2 As Variant) As String
Dim fBetween As Boolean
Dim fLike As Boolean
Dim strCriteria As String
Const conQuotes = """"
fBetween = IIf(InStr(strCondition, "の間") > 0, _
True, False)
fLike = IIf(InStr(strCondition, "類似") > 0, _
True, False)
strCriteria = strFieldName & " "
Select Case intType
Case dbText, dbMemo
If InStr(1, varValue1, "*") > 0 Then
strCriteria = strCriteria _
& " Like " & conQuotes & varValue1 & conQuotes
Else
If fLike Then
strCriteria = strCriteria & " 類似 " _
& conQuotes & "*" & varValue1 & "*" & conQuotes
Else
strCriteria = strCriteria & strCondition _
& " " & conQuotes & varValue1 & conQuotes
End If
End If
Case dbInteger, dbLong, dbCurrency, dbDouble, dbSingle
If fBetween Then
strCriteria = strCriteria _
& strCondition & " " & varValue1 & " AND " & varValue2
Else
strCriteria = strCriteria _
& strCondition & " " & varValue1
End If
Case dbDate
If fBetween Then
strCriteria = strCriteria & strCondition _
& " #" & Format(varValue1, "yyyy/mm/dd") & "# AND #" _
& Format(varValue2, "yyyy/mm/dd") & "#"
Else
strCriteria
No.4ベストアンサー
- 回答日時:
#1、#2です。
cboConditionに元々はLIKE、BETWEENというキーワードが入っていたが、
それを「類似」と「の間」に変更した、ということでしょうか。
本来はキーワードのBETWEENをstrConditionに渡すということであったならば
>Case dbDate
>If fBetween Then
>strCriteria = strCriteria & strCondition _
>& " #" & Format(varValue1, "yyyy/mm/dd") & "# AND #" _
>& Format(varValue2, "yyyy/mm/dd") & "#"
において、
>strCriteria = strCriteria & strCondition _
のところを、
strCriteria = strCriteria & " Between"_
でいいのでは、と思います。"" の中のBetweenの
前は半角空けておきます。
これで、#1で述べましたようにMsgBoxでstrCriteria
の中身が、
作成日 Between #2010/10/01# AND #2010/10/30#
となっていればいいのではと思います。
また、他の
>Case dbInteger, dbLong, dbCurrency, dbDouble, dbSingl
の場合も同様だと思いますが。
No.3
- 回答日時:
FUNCTION内で定義している
「strCondition」にどんな値が入るのか教えてほしいです。
関係しているかもしれません。
>If fLike Then
>strCriteria = strCriteria & " 類似 " _
「類似」には使われていませんが
他では使われています。
>strCriteria = strCriteria & strCondition _
おかしいときは、
途中にブレイクポイントをおいてデバッグするとか
メッセージボックスを追記して値がどうなっているか見る。
こういうことをしないと自力で解決できなくなりますから、
なぜおかしいか以前にやり方を聞く方がいいですね。
No.2
- 回答日時:
エラーの、
の間#2010/10/01# AND #2010/10/30#
は、本来
Between #2010/10/01# AND #2010/10/30#
になるのが、Between の代わりに 「の間」 が
演算子として入ってしまっているからではと思いますが。
If fBetween Then
strCriteria = strCriteria & strCondition _
& " #" & Format(varValue1, "yyyy/mm/dd") & "# AND #" _
& Format(varValue2, "yyyy/mm/dd") & "#"
のところで、Betweenが入るのは、strConditionの
ところですか。あるいは、
strCriteria = strCriteria & strCondition & "Between"_
とするのですか。
No.1
- 回答日時:
コードが途中掲載なので、思いついたことだけ。
(1)
With Me
ここはエラー→ .Filter = strCriteria
.FilterOn = True
.Requery
End With
の部分をコメントアウトして、変わりに
MsgBox strCriteria
をいれて、strCriteria の内容を確認
してみては。
(2)
#" & Format(varValue1, "yyyy/mm/dd") & "#
などを、
'" & Format(varValue1, "yyyy/mm/dd") & "'
にしてみるとか。
(3)
あるいは、txtValue1とtxtValue2の値の
対象となるレコードのフィールドなりが
テキスト型ならば、型を変更する。
あるいは、(2)をCaDate、Formatで
変更する。
(4)
BuildCriteriaの他の引数にNullがないか。
この回答への補足
すみません、これは全部のコードです。元々は行けているんですが条件のリストボックスの中にBETWEENとLIKEという条件があって、私は「の間」と「類似」に変わりました。そこでこのエラーに出てしまったんです。類似という条件でうまく検索できますが「の間」だけではいけてないです
txtValue1=ChangeProperty("cmdFilter")
Private Function BuildCriteria(strFieldName As String, _
intType As Integer, _
strCondition As String, _
varValue1 As Variant, _
Optional varValue2 As Variant) As String
Dim fBetween As Boolean
Dim fLike As Boolean
Dim strCriteria As String
Const conQuotes = """"
fBetween = IIf(InStr(strCondition, "の間") > 0, _
True, False)
fLike = IIf(InStr(strCondition, "類似") > 0, _
True, False)
strCriteria = strFieldName & " "
Select Case intType
Case dbText, dbMemo
If InStr(1, varValue1, "*") > 0 Then
strCriteria = strCriteria _
& " Like " & conQuotes & varValue1 & conQuotes
Else
If fLike Then
strCriteria = strCriteria & " Like " _
& conQuotes & "*" & varValue1 & "*" & conQuotes
Else
strCriteria = strCriteria & strCondition _
& " " & conQuotes & varValue1 & conQuotes
End If
End If
Case dbInteger, dbLong, dbCurrency, dbDouble, dbSingle
If fBetween Then
strCriteria = strCriteria _
& strCondition & " " & varValue1 & " AND " & varValue2
Else
strCriteria = strCriteria _
& strCondition & " " & varValue1
End If
Case dbDate
If fBetween Then
strCriteria = strCriteria & strCondition _
& " #" & Format(varValue1, "yyyy/mm/dd") & "# AND #" _
& Format(varValue2, "yyyy/mm/dd") & "#"
Else
strCriteria = strCriteria _
& strCondition & " #" & Format(varValue1, "yyyy/mm/dd") & "#"
End If
Case Else
strCriteria = strCriteria _
& strCondition & " " & varValue1
End Select
BuildCriteria = strCriteria
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL*Loaderでのsysdate使用
-
エクセル上の 2017/10/27 7:01...
-
SQL*Loader フォーマット変換...
-
to_date使用時に発生するエラー...
-
日付の範囲検索がしたい
-
ALTER SESSIONについて
-
SQL Sever での日付の差の求め...
-
日付型カラムへのデータINSERT
-
(日付 - 日付)/数値
-
SQLコマンドの「TO_DATE」について
-
オラクル SQL
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
Statement ignored というエラー
-
エクセルVBAでUserFormを起動し...
-
今日の日付が入った行のデータ...
-
likeとsubstrの使いわけについて
-
SQL*Plusの終了はquit?exit?
-
sqlplusでヘッダーが付かない
-
時間項目を60進数から10進数へ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL*Loaderでのsysdate使用
-
SQL*PLUSでの分秒までの表示の仕方
-
SQL*Loader フォーマット変換...
-
ALTER SESSIONについて
-
DB2でのシステム日付のinsert、...
-
日付型カラムへのデータINSERT
-
SQL Server で 翌月10日を取...
-
SQLです。下記の問合せを行うク...
-
to_date使用時に発生するエラー...
-
date型のインデックス
-
エクセル上の 2017/10/27 7:01...
-
EXCELでの時間計算(休憩時間の...
-
SQLエラーについて
-
SQL Sever での日付の差の求め...
-
(日付 - 日付)/数値
-
PL/SQLにて勤務時間の計算
-
date型へのinsertについて
-
実行エラー 3075:クエリ式`作...
-
yyy/mm/dd/形式
-
日付の範囲検索がしたい
おすすめ情報