アプリ版:「スタンプのみでお礼する」機能のリリースについて

複数の条件で検索したい!
現在下記のコードでフォームのtxtBoxとcmbBoxの条件でサブフォームを絞込みしています。
これを複数の条件を満たしたレコードだけを絞込みしたいのですが、
txtBox1の条件も拾うしcmb1の条件も拾ってしまう・・・
これを
txtBox1の条件を満たした中のcmb1条件も満たすのレコードで絞込みしたいのですが、
どのようにしたら良いか教えてください。よろしくお願いいたします。
Private Sub cmd検索_Click()
If Not IsNull(txtBox1) Then
サブフォーム.Form.Filter = "顧客コード like '*" & txtBox1.Value & "'"
サブフォーム.Form.FilterOn = True
End If
If Not IsNull(cmb1) Then
サブフォーム.Form.Filter = "顧客区分 like '" & cmb1.Value & "'"
サブフォーム.Form.FilterOn = True
End If
If Not IsNull(txtBox2) Then
サブフォーム.Form.Filter = "顧客名カナ like '*" & txtBox2.Value & "*'"
サブフォーム.Form.FilterOn = True
End If

A 回答 (1件)

一例。

試さないで書いてますが。
On Error Resume Next
dim p, q, s
p = Array( Array( txtBox1, "顧客コード" ), Array( cmb1, "顧客区分" ), Array( txtBox2, "顧客名カナ" ) )
s = "": For Each q In p: If q(0).Value<>"" Then s = s & " And ["&q(1)&"] like '" & q(0).Value & "*'"
Next: s = Mid( s, 6 )
If s <> "" Then With サブフォーム.Form: .Filter = s: .FilterOn = True: End With
    • good
    • 0
この回答へのお礼

返答ありがとうございます。
シッカリ機能しました!
相談なんですが、顧客名カナで名字と名前があり、名前の方でも拾いたい為に
like '" & q(0).Value & "*'"をlike '*" & q(0).Value & "*'"に変えたのですが、
顧客コードを「1」で検索をすると「0001」と「0010」や「0011」を拾ってしまいます。当然ですが・・・
特定のフィールドだけ
'"txtBox1"*"
'"txtBox2""
'*"txtBox3"*"
の様にしたいのですが可能ですか?
返答宜しくお願いいたします。

お礼日時:2010/05/05 16:24

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