如何使用多个组合框来过滤数据
问题描述:
有人可以请帮我解决这个问题我是一个初学者编程。如何使用多个组合框来过滤数据
有两个组合框是S.Y.(学年)和Sem(学期),我想用这两个组合框在下面的列表视图中有更具体的数据。
Private Sub Search_Record()
Dim conn As New OleDbConnection
Dim cmd As New OleDbCommand
Dim da As New OleDbDataAdapter
Dim dt As New DataTable
Dim sSQL As String = String.Empty
Try
conn = New OleDbConnection(Get_Constring)
conn.Open()
cmd.Connection = conn
cmd.CommandType = CommandType.Text
sSQL = "SELECT edp_number, LastName + ', ' + FirstName as name, course as course, Address as address, syear as syear, Sem as sem FROM tblStudent"
If Me.cboSearchBy.Text = "1st" Then
sSQL = sSQL & " where Sem like '1st" & Me.txtSearch.Text & "%'"
Else
sSQL = sSQL & " where Sem like '2nd" & Me.txtSearch.Text & "%'"
End If
cmd.CommandText = sSQL
da.SelectCommand = cmd
da.Fill(dt)
Me.dtgResult.DataSource = dt
If dt.Rows.Count = 0 Then
MsgBox("No record found!")
End If
Catch ex As Exception
MsgBox(ErrorToString)
Finally
conn.Close()
End Try
End Sub
这个代码仅使用SEM组合框是cboSearchby所以现在我需要知道的是如何使组合框S.Y运作也是一样,如果还使用texbox搜索名字和姓氏。
答
,你只需要在你的if语句添加另一个条件:
If Me.cboSearchBy.Text = "1st" and Me.cboSY.Text = "2014-2015" Then
sSQL = sSQL & " where Sem like '1st" & Me.txtSearch.Text & "%' and SY like '" & Me.cboSY.Text & "%' "
Else
sSQL = sSQL & " where Sem like '2nd" & Me.txtSearch.Text & "%' and SY like '" & Me.cboSY.Text & "%' "
End If
然后如果你想添加的搜索的姓氏和名字,只是添加的if语句的另一个条件。
注意:在使用逻辑运算符,如果所有条件为真,而或为真,如果条件ATLEAST之一为真和是真实的。
非常感谢你的先生!我很感激,还有一件事是先生,这两者之间存在冲突,例如当我选择2014-2016并且在第二个组合框中我选择第二个sem时,仍然存在2015-2016的记录,因为他们正在响应第二个sem组合框..对这位先生的任何建议? – user3459793 2015-02-10 11:06:22
我很抱歉,但问题不明白。你能详细说明吗?你能提供一些例子吗? – Kim 2015-02-10 16:27:38
抱歉,如果我的问题不明确,我遵循上面的代码,当我在cboSY中选择“2015-2016”并在cboSearchby中选择“1st”sem时,结果对于“2015-2016”但它显示了第二学期记录而不是第一个sem的预期输出。 – user3459793 2015-02-10 17:09:46