投稿者 るきお  (社会人) 投稿日時 2014/1/30 13:04:28
必須ではありませんが、個人的に気になる部分は
変数wOK と WHERE を結合するタイミングです。

wOKの意味がわかりにくく、プログラム全体の見通しが悪くなっています。

WHERE をくっつけるのは最後にしたほうがスマートになることが多いですよ。

下記はあくまでイメージですがこんな感じです。
Dim sqlBody As String
sqlBody = "SELECT * FROM 生産者情報"

Dim sqlWhere As New System.Text.StringBuilder 'Stringでも可能ですが。anさんの指摘を参照。 

If xxxx Then
    sqlWhere.AppendLine("A=1")
End If

If xxxx Then
    If sqlWhere.Length > 0 Then
        sqlWhere.Append(" OR ")
    End If
    sqlWhere.Append("B=1")
End If



Dim sql As String
sql = sqlBody & sqlWhere.ToString()


なお、パラメーター化クエリが使用可能であれば必ず使用します。
ただその説明を一緒に書くと論点がぼけるので、ここではパラメーター化クエリを使わないイメージとして紹介しました。