dポイントプレゼントキャンペーン実施中!

検索フォームを作成中でどうしても複数条件の検索がうまくいかず
苦戦しており質問をさせていただきます。

【内容】
検索条件項目が3個ありそれぞれにテキストボックスを配置
 テキスト名          
担当者名 含む検索 "担当者名 like '*" & Me!担当者名検索& "*'"
顧客名  含む検索  "顧客名 like '*" &申込者名検索& "*'"
利用日        "利用日 like #" & 利用日検索 & "#"

それぞれのテキストボックスは、常に3個の条件で抽出するわけでなく、
担当者名のみ・顧客名のみ・利用日のみのテキストボックスに入力して検索ボタンを
クリックして検索結果を求めるようにしたいのですが。
どなたかご教授お願いいたします。

Access2013使用

A 回答 (2件)

No.1 です。



> Me.Filter = Mid(strFilter, 3)⇒⇒この部分でエラーストップしてしまいます。

ここは変更してはいけません。

Me.Filter = Mid(strFilter, 6)
です。

コードの意味は
テキストボックスに何らかの条件が入力されている場合、
変数 strFilter は、" AND " で始まる文字列になります。
" AND 担当者名 like '*田中*' AND 顧客名 like '*高橋*'" などのように。

先頭の " AND " が余計で エラーになりますから
それを取り除くために、この文字列の 6文字目から取り出す、
それが Mid(strFilter, 6) になります。
Mid 関数の 第3引数を省略すると、残りすべての文字が返ります。
(省略しなければ、その文字数分)

以下、余計なお世話かもしれませんが

2018/01/17 13:12 のコメントでは、Like の ワイルドカードの記述のところに
余分な スペースが含まれています。
文法的には正しくても、期待する抽出ができませんので、
きっちり正確に記述しましょう。

あとは、
"利用日 like #" & 利用日検索 & "#"

「利用日」は 日付時刻型 ですよね?
テキストボックス「利用日検索」に 日付 を 入力しているなら
比較 は 「Like」 ではなく 「=」で比較しましょう。

「利用日検索」に日付以外、"2018/1" などと入力して
特定の年月のものを抽出しようとしているなら、「#」は不要ですし、
コントロールパネルの設定によっては期待する結果になりません。
    • good
    • 0
この回答へのお礼

助かりました

bonaronさん

すごく分かりやすい回答ありがとございます。
助かりました。

お礼日時:2018/01/20 09:10

こちらが参考になるでしょう。



複数条件の抽出フォームの設計 その1
https://hatenachips.blog.fc2.com/blog-entry-129. …
    • good
    • 0
この回答へのお礼

bonaronさん
コメントありがとうございます。
すいません。回答頂いたアドレスを参照しながら、自分に必要な部分
をコピーしてイベントプロシージャーを作成したのですが、意味が分からず、
ただ、コピーをしたので実行時エラーが発生してしまい先に進めない状態と
なってしまいました。

イベントプロシージャーは以下のように作成しました。
Private Sub 検索_Click()

'テキスとボックス内容を保存する変数を定義
Dim strFilter As String, strExp As String, aryOpe As Variant

If Not IsNull(Me.担当者名検索) Then
strFilter = strFilter & " and 担当者名 like ' * " & Me.担当者名検索 & "*'"
End If

If Not IsNull(Me.申込者名検索) Then
strFilter = strFilter & " and 顧客名 like ' * " & Me.申込者名検索 & "*'"
End If

If Not IsNull(Me.利用日検索) Then
strFilter = strFilter & " and 利用日 #" & Me.利用日検索 & "#"
End If

Me.Filter = Mid(strFilter, 3)⇒⇒この部分でエラーストップしてしまいます。
If strFilter = "" Then
Me.FilterOn = False

Else

Me.FilterOn = True

End If

End Sub

エラー部分の意味が全然分かりません。申し訳けございませんが、
教えて頂けませんでしょうか。

お礼日時:2018/01/17 13:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A