怎么样实现VB 的多条件查询 急!!!在线等。。。。

来源:百度知道 编辑:UC知道 时间:2024/05/29 14:44:33
我有6个要查询的条件 选择其中任意几个条件输入值得出结果.
Private Sub cmdcancle_Click()
Unload Me
End Sub

Private Sub cmdsearch_click()
If Check1.Value = 1 Then '歌曲名查询
DBstr1 = "select * from audioinfo where 歌曲名 like '%" & txt歌曲名.Text & "'"
Else
DBstr1 = "select * from audioinfo"
End If

If Check2.Value = 1 Then '歌手名查询
DBstr2 = "select * from DBstr1 where 歌手名 like '%" & txt歌手名.Text & "'"
Else
DBstr2 = DBstr1
End If

If Check3.Value = 1 Then '专辑名查询
DBstr3 = "select * from DBstr2 where 专辑名 like '%" & txt专辑名.Text & "'"
Else
DBstr3 = DBstr2
End If

Adodc1.RecordSource = DBstr3
Adodc1.Refresh
DataGrid1.Refresh
Msg
Exit Sub

End Sub

Private Sub Msg()

If Adodc1.Recordset.RecordCount = 0 Then
MsgBox "未查询到所需信息,请重新查询", , "提示"

其实不用多条一条查询语句就够了,就是采用判断你输入的条件有几个,动态的位sql 语句设置查询的参数。就像楼上说的,用if判断,如过你传递过来的参数有两个就把那两个设置为sql语句的查询值。
dim objSql As New StringBuilder
objSql.Append(vbCrLf & "SELECT ")
objSql.Append(vbCrLf & "A, ") '
objSql.Append(vbCrLf & "B, ") '
objSql.Append(vbCrLf & "FROM ")
objSql.Append(vbCrLf & TAVLE001")
objSql.Append(vbCrLf & "WHERE ")
‘动态添加查询的值 ,
If frm001.text <> "" Then
objSql.Append(vbCrLf & " C = '" & frm001.text & "' ")
End If

If frm002.text <> "________" Then
objSql.Append(vbCrLf & "AND D = '" & frm002.text & "' ")
End If

'......

dim sql as String = objSql.ToString