1. 程式人生 > >機房收費系統之八(組合查詢)

機房收費系統之八(組合查詢)

1.組合查詢:涉及的窗體有:學生基本資訊維護,學生上機統計資訊,操作員工作記錄。

初次見到組合查詢介面,有種似曾相識的感覺。沒錯,我們在學生資訊管理系統裡面見過類似的。也可以說我們已經接觸過組合查詢了。不同的是這次的組合查詢要多一點,相對來講複雜一點。

 剛開始的時候,我也是思考了好久,邏輯關係總是搞不懂。於是不停的修正流程圖,不斷修改自己的錯誤。最後總算是弄明白了。


2.流程圖:


3.重要程式碼學習:

    3.1 定義一個Field函式,用來使VB程式中的欄位名與資料庫中的列名相對應。

field的定義可以如下所示:(以學生基本資訊維護窗體為例)

Public Function field( i As String) As String  
'定義一個函式過程  
    Select Case i  
    '欄位名與資料庫中的列名相對應  
    '學生基本資訊維護要用到的欄位  
            Case "學號"  
        field = "studentno"  
            Case "姓名"  
        field = "studentName"  
            Case "卡號"  
        field = "cardno"  
            Case "金額"  
        field = "cash"  
            Case "系別"  
        field = "department"  
            Case "年級"  
        field = "grade"  
            Case "班級"  
        field = "class"  
            Case "性別"  
        field = "sex"  
            Case "狀態"  
        field = "status"  
            Case "備註"  
        field = "explain"  
            Case "型別"  
        field = "type"  
            Case "日期"  
        field = "date"  
            Case "時間"  
        field = "time"  
        
            Case "或"  
        field = "or "  
            Case "與"  
        field = "and "  
   End Select  
End Function  
      3.2  以查詢學生上機記錄為例的組合查詢程式碼:
StutxtSQL = "select * from Online_Info where "  
'在student_Info這張表中獲得整行記錄。其中*表示整行記錄,也可以換成你需要查詢的具體記錄。  
      
If Trim(Combo1.Text) = "" Or Trim(Combo2.Text) = "" Or Trim(Text1.Text) = "" Then  
   MsgBox "請將選項內容填寫完整!", vbOKOnly, "提示"  
   Exit Sub  
Else  
   StutxtSQL = StutxtSQL & " " & field(Combo1.Text) & " " & Combo2.Text & "'" & Trim(Text1.Text) & "'"  
          
   If Combo7.Text <> "" Then  
   '判斷第一個組合關係是否選中  
       If Combo3.Text = "" Or Combo4.Text = "" Or Text2.Text = "" Then  
       '如果選中,判斷第二行內容是否填寫完整,且符合要求  
           MsgBox "請將第二行選項內容填寫完整!", vbOKOnly, "提示"  
           Exit Sub  
       Else  
           StutxtSQL = StutxtSQL & " " & field(Combo7.Text) & " " & field(Combo3.Text) & " " & Combo4.Text & "'" & Trim(Text2.Text) & "'"  
           '將前兩行的條件聯絡起來,完成SQL語句  
            If Combo8.Text <> "" Then  
            '判斷第二個組合關係是否選中  
                 If Combo5.Text = "" Or Combo6.Text = "" Or Text3.Text = "" Then  
                 '如果選中,判斷第二行內容是否填寫完整,且符合要求  
                     MsgBox "請將第三行選項內容填寫完整!", vbOKOnly, "提示"  
                     Exit Sub  
                 Else  
                     StutxtSQL = StutxtSQL & " " & field(Combo8.Text) & " " & field(Combo5.Text) & " " & Trim(Combo6.Text) & "'" & Trim(Text3.Text) & "'"  
                     '將三行的條件聯絡起來,完成SQL語句  
                 End If  
            End If  
        End If  
End If  
     重點語句:
txtSQL = "select * from 表名稱 where "  此處where後面有個空格
txtSQL = txtSQL & " " & field(組合關係) & " " & field(某行條件中運算子前的內容) & " " & 該行條件中的運算子號 & "'" & 運算子後的內容 & "'"  

心得總結:組合查詢其實沒想象的那麼難。困難的地方就是邏輯順序要搞清楚。還有就是對SQL查詢語句不熟悉,不知道如何去使用SQL語句查詢。而這些也正是我們要學習和進步的地方。只有多思考,多練習,才能逐漸對SQL語句熟悉掌握。

感謝您的閱讀!