Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4986 / 9994 ←次へ | 前へ→

【8243】Re:SQLでの検索
回答  飛ばない豚  - 06/7/14(金) 10:36 -

引用なし
パスワード
   ▼まっきん さん:

もっと簡単な方法があるかもしれませんが、
回答付かないようなので、とりあえず、

>'--- 分割されたキーワードを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や空白の場合は考慮してません。

211 hits

【8224】SQLでの検索 まっきん 06/7/12(水) 15:04 質問
【8243】Re:SQLでの検索 飛ばない豚 06/7/14(金) 10:36 回答
【8253】Re:SQLでの検索 小僧 06/7/14(金) 15:16 発言
【8260】Re:SQLでの検索 飛ばない豚 06/7/14(金) 16:55 発言

4986 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078226
(SS)C-BOARD v3.8 is Free