Sub ApplyConcatenatedFieldsFilterAndCondition()
Dim strFilter As String
Dim strConcatFields As String
Dim strKey1 As String: strKey1 = "あいう"
Dim strKey2 As String: strKey2 = "かきく"
Dim strKey3 As String: strKey3 = "さしす"
Dim arrKeys As Variant
Dim i As Integer
Dim strKeyConditions As String
' キーワードを配列に格納
arrKeys = Array(strKey1, strKey2, strKey3)
' フィールド値の連結式を作成
strConcatFields = "フィールド1 & フィールド2 & フィールド3 & フィールド4 & " & _
"フィールド5 & フィールド6 & フィールド7 & フィールド8 & " & _
"フィールド9 & フィールド10"
' キーワードに基づいてフィルタ条件を組み立てる(「かつ」条件)
For i = LBound(arrKeys) To UBound(arrKeys)
If arrKeys(i) <> "" Then
If strKeyConditions <> "" Then strKeyConditions = strKeyConditions & " AND "
strKeyConditions = strKeyConditions & strConcatFields & " Like '*" & arrKeys(i) & "*'"
End If
Next i
' 最終的なフィルタ条件を設定
If strKeyConditions <> "" Then
strFilter = "(" & strKeyConditions & ")"
Me.Filter = strFilter
Me.FilterOn = True
Else
Me.FilterOn = False ' 条件がない場合はフィルタをオフにする
End If
End Sub
コメント