|
▼まっきん さん:
もっと簡単な方法があるかもしれませんが、
回答付かないようなので、とりあえず、
>'--- 分割されたキーワードをSQLステートメントに反映 ---
>For i = 0 to UBound(SplitKeyword)
>StrSQL = StrSQL & " and field1 like '%" & SplitKeyword(i) & "%'"
>Next
この部分を、以下に変更します。
>==============================================================
'変数を一つ作ります。
Dim StrTMP AS String
StrSQL = StrSQL & " AND (" '----- フィールド毎に OR で区切る為
'-----------------------------(1)
StrTMP=""
For i = 0 to UBound(SplitKeyword)
StrTMP = StrTMP & " and field1 like '%" & SplitKeyword(i) & "%'"
Next
StrTMP = Mid$(StrTMP, 6)
StrSQL = StrSQL & " (" & StrTMP & ) "
'-----------------------------(1)
'-----------------------------(2)
StrTMP=""
For i = 0 to UBound(SplitKeyword)
StrTMP = StrTMP & " and field2 like '%" & SplitKeyword(i) & "%'"
Next
StrTMP = Mid$(StrTMP, 6)
StrSQL = StrSQL & " OR (" & StrTMP & ) "
'-----------------------------(2)
'〜〜以下、field10まで、繰り返し。(2)以下は、OR をつける事に注意。
'フィールド名がループ化できる、あるいは配列変数に代入してループ化すると省略可能
StrSQL = StrSQL & " )" '--------- 最後に括弧とじ
>==============================================================
以上です。
検索値がNullや空白の場合は考慮してません。
|
|