|
かるびの様
クエリの公式がよくわからなかったら、VBAで違う言語にしてくれると
思っていたら、激しく勘違いをしていることはわかりました!
ただ、自分自身がいまVBAを使っているのかSQLを使っているのかも
混乱してきたので、まずはtxt○○を当てはめてみることにしました!
Private Sub cmdFilter_Click()
Dim strFilter As String, strExp As String, aryOpe As Variant
If Not IsNull(Me.txt利用者ID) Then
strFilter = " AND " & BuildCriteria("利用者ID", _
dbLong, Me.txt利用者ID)
End If
If Not IsNull(Me.txt口座番号) Then
strFilter = " AND " & BuildCriteria("Me.txt口座番号", _
dbLong, 口座番号)
End If
If Not IsNull(Me.txt口座名義人) Then
strFilter = strFilter & " AND 口座名義人 Like '*" & Me.txt口座名義人 & "*'"
End If
If Not IsNull(Me.txt利用者名) Then
strFilter = strFilter & " AND 利用者名 Like '*" & Me.txt利用者名 & "*'"
End If
If Not IsNull(Me.txt利用施設) Then
strFilter = strFilter & " AND 利用施設 Like '*" & Me.txt利用施設 & "*'"
End If
If Not IsDate(Me.txt開始日) Then
strFilter = strFilter & " AND 開始日 >= #" & Nz(Me.txt開始日) & "#"
End If
If Not IsDate(Me.txt終了日) Then
strFilter = strFilter & " AND 終了日 =< #" & Nz(Me.txt終了日) & "#"
End If
If Not IsNull(Me.利用終了者) Then
strFilter = "(" & strFilter & ") or 利用終了者"
End If
Debug.Print "Mid関数前:" & strFilter
strFilter = Mid(strFilter, 6)
Me.Filter = strFilter
Debug.Print "Mid関数後:" & strFilter
If strFilter = "" Then
Me.FilterOn = False
Else
Me.FilterOn = True
End If
End Sub
Private Sub cmdFilterOff_Click()
Me.Filter = ""
Me.FilterOn = False
Me.txt利用者ID = Null
Me.txt口座名義人 = Null
Me.txt利用者名 = Null
Me.txt利用施設 = Null
Me.txt開始日 = Null
Me.txt終了日 = Null
Me.txt口座番号 = Null
Me.txt利用終了者 = Null
End Sub
結果は、お蔭様で利用者名と口座名義人名はばっちり検索できるようになりました!
ありがとうございます!
利用施設も、施設名での検索は不可能ですが、
ルックアップ時の数字であれば検索ができるようになりました!
ただ、利用者IDや口座番号は
抽出条件でデータ型が一致しません。
Mid関数前: AND 利用者ID=1となり、
利用終了者にチェックを入れると実行時エラー3075
不要な')'があると指摘されます。
開始日、終了日においては検索機能を果たさず、
Mid関数前: AND 開始日 >= ##
となります。
ちょっとずつ理解できはじめましたが、
理解力が乏しく、かるびの様に多大なる負担をお掛けいまして
大変申し訳ありません。本当にいつも感謝しております。ありがとうございます。
|
|