2015-02-10 89 views
0

有人可以請幫我解決這個問題我是一個初學者編程。如何使用多個組合框來過濾數據

有兩個組合框是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搜索名字和姓氏。

回答

1

,你只需要在你的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之一爲真是真實的。

+0

非常感謝你的先生!我很感激,還有一件事是先生,這兩者之間存在衝突,例如當我選擇2014-2016並且在第二個組合框中我選擇第二個sem時,仍然存在2015-2016的記錄,因爲他們正在響應第二個sem組合框..對這位先生的任何建議? – user3459793 2015-02-10 11:06:22

+0

我很抱歉,但問題不明白。你能詳細說明嗎?你能提供一些例子嗎? – Kim 2015-02-10 16:27:38

+0

抱歉,如果我的問題不明確,我遵循上面的代碼,當我在cboSY中選擇「2015-2016」並在cboSearchby中選擇「1st」sem時,結果對於「2015-2016」但它顯示了第二學期記錄而不是第一個sem的預期輸出。 – user3459793 2015-02-10 17:09:46

相關問題