1. 程式人生 > >機房收費系統之學生基本資訊維護

機房收費系統之學生基本資訊維護

前言

該窗體功能是實現查詢學生的資訊,並可給予修改的許可權。其中包含兩個重大部分,一是組合查詢,二是修改;其中修改又涉及到了修改學生資訊窗體,此窗體中取消修改嘗試了很多方法,最後選取比較簡單的方法,這個窗體不難。最重要的莫過於組合查詢:組合查詢我使用的方法是一行一行的查,因為對於我目前的水平也是最容易接受的方法。此方法中需注意一下幾點:
1)漢字轉換為資料庫中的欄位名部分
2)資料庫查詢部分
3)操作符部分

流程

判斷控制元件是否為空----漢字轉換資料庫中的欄位名----連線student_info表依次進行1,2,3行查詢-----修改:MSFlexGrid1控制元件判斷是否選中資料,然後跳轉到修改學生資訊窗體

累贅

問題1:實時錯誤’30006’不能為MSFlexGrid1分配記憶體
原因:缺少一行程式碼:mrc.movenext
問題2:查詢內容不完整
原因:上一篇部落格中提到的無去空格符
問題3:操作符到底有何作用
原因:查詢的條件,比如:在查詢學號時,操作符為"=" 查詢的結果就是你輸入的學號的資訊(此方法確實挺簡單,作為菜鳥的我沒實踐之前還是懵逼狀態的;所以也是送給跟我一樣正處於蒙版狀態的你。

程式碼展示

1)程式碼轉換為資料庫中的欄位名,下面以“卡號,學號,性別“為例說明方法;需注意strcon1要定義

select case cb1
         case "卡號"
               strcon1 = "cardno“
         case "學號"
              strcon1 = " studentno”
          case "性別'
               strcon1 = "sex"
 end select

2)第一行,第二行,第三行資料庫的查詢條件的表達方式,需注意的是where後面的條件是欄位名、操作符、查詢的內容

txtsql = "select * from student_info where " & strcon1 & trim(cb4.text) & " ' " & trim(txtquery.text) & " ' "
txtsql = txtsql & " " & strcon2 & " " & strcon4 & " " & trim(cb5.text) & " ' " & trim(txtquery1.text) & " ' "
txtsql = txtslq & " " & strcon5 & " " & strcon3 & " " & trim(cb6.text) & " ' " & trim(txtquery2.text) & " ' "

3)當查詢姓名或性別時,操作符只能為" = " 或”<> ",因此可增加條件如下

If cb1.text = " 姓名" or cb1.text = "性別" then
       with cb4
               .addItem " ="
               .addItem " <>"
         end with
   else
        with cb4
               .addItem " = "
               .addItem " <"
               .addItem">"
               .addItem "<>"
           end with
    end if 

4)修改部分,此部分沒有用了一個臨時卡號的值,注tmpcardno是臨時卡號,在此處因省略部分的程式碼又with MSFlexGrid1,因此這裡可以這樣書寫程式碼

if .rowsel > 0 then     '選中資訊
       tmpcardno = trim(.textmatrix(.rowsel,0)
       frmmodify.show
       end if 

總結

多看幫助,少走彎路