投稿者 名無し  (社会人) 投稿日時 2014/2/12 11:15:13
金曜日の発言の社会人は名前の入力ミスでした。
現在、こういったコードになっています。

Private Sub btnGo_Click(sender As System.Object, e As System.EventArgs) Handles btnGo.Click
        Dim wOK As Boolean
        Dim cnstr As String = "Data Source=DENSAN09;Initial Catalog=データベース;Integrated Security=True"
        Dim sql As String
        sql = "SELECT * "
        sql += "FROM 生産者情報"
        Dim dt As New DataTable

        If TextBox1.Text.Length >= 0 Then
            If TextBox2.Text.Length >= 0 Then
                wOK = True
                sql += " WHERE (生産者番号 between '%" & TextBox1.Text.Trim & "%' and '%" & TextBox2.Text.Trim & "%')" 
            Else
                wOK = True
                If RadioB.Checked Then
                    sql += " WHERE (生産者番号 Like '%" & TextBox1.Text.Trim & "%')"
                Else
                    sql += " WHERE (生産者番号 Like '" & TextBox1.Text.Trim & "%')"
                End If
            End If
        End If

        If TextBox3.Text.Length > 0 Then
            If wOK = True Then
                sql += " AND "
            Else
                sql += " WHERE "
            End If
            sql += " (生産者名 Like '"
            If RadioB.Checked Then
                sql += "%"
            End If
            sql += TextBox3.Text.Trim & "%')"
            wOK = True
        End If

        If TextBox4.Text.Length > 0 Then
            If wOK = True Then
                sql += " AND "
            Else
                sql += " WHERE "
            End If
            sql += " (Rank Like '"
            If RadioB.Checked Then
                sql += "%"
            End If
            sql += TextBox4.Text.Trim & "%')"
            wOK = True
        End If

        Dim da As New SqlDataAdapter(sql, cnstr)
        MessageBox.Show(sql)
        Try
            da.Fill(dt)
            DataGridView1.DataSource = dt 'DataGridview1にdtのデータを表示する
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try
    End Sub
End Class

前回のエラーについてなんですが、
 If TextBox1.Text.Length > 0 And TextBox2.Text.Length > 0 Then
            wOK = True
            If RadioB.Checked Then
                sql += " AND "
            Else
                sql += " WERE "
            End If

If TextBox1.Text.Length > 0 and TextBox2.Text.Length > 0 Then
                    wOK = True
                    If RadioB.Checked Then
                        sql += " WHERE (生産者コード Like '%" & TextBox1.Text.Trim & "%')"
                    Else
                        sql += " WHERE (生産者コード Like '" & TextBox1.Text.Trim & "%')"
                    End If
に変更する事で一応出来ました。

(生産者コードの00~10には全てデータが入っていると仮定しています)

うんともすんとも言わない状況ですが、
・Textboxに入力しても検索結果では 「SELECT * FROM 生産者 WHERE (生産者番号 BETWEEN '%00%' and '%10%')と表示れますがDataGrdiviewには一つもデータが表示されません。
・試しに sql += " WHERE (生産者コード between '00' and '10')"にすると00~10の11件のデータが表示されました。
という状況になっていまして。
更に
・最初の分岐が上手く行かず、Text1,2の両方が入力していないのに「SELECT * FROM 生産者 WHERE (生産者番号 BETWEEN '%%' and '%%')」となり、他の検索条件にまで到達しない状況になっている

と、ややこしい事になっています。
最初の分岐はandでも作ってみましたが同じ結果となりました。
以下がそのコードです。
If TextBox1.Text.Length >= 0 And TextBox2.Text.Length >= 0 Then
中の sel +=は一緒の為省きます。
End If

daiveさん
サイトの紹介有難うございます。
投稿後に見ます。