機房那些事兒 組合查詢

2021-07-26 14:38:43 字數 1635 閱讀 4652

機房收費系統其實真正敲起來也並沒有辣麼難,他前面好些內容跟學生管理系統都是類似的,但是組合查詢就不一樣了,可以算是乙個新知識吧!

下面,我們先來簡單分析一下這個視窗

一.判斷第1行查詢條件是否為空,若不為空且組合關係4為空,查詢結果符合第1行查詢的內容

二.組合關係4不為空,第2行查詢條件不能為空,查詢結果符合第1行和第2行組合查詢的內容

三.組合關係4、5均不為空,第2、3行查詢條件均不能為空,查詢結果符合第1、2、3行組合查詢的內容

備註:若4為空,則2、3、5中控制項的enable屬性均為false

若4不為空,5為空,2中控制項的enable屬性為true,3、5控制項的屬性為false

若4、5均不為空,控制項enable屬性均為true

分析完視窗的功能之後,最重點的來了---**

由於這部分屬於新的內容,**當然也沒有接觸過,所以借鑑了師傅的部落格

在實現查詢這一功能的**我是用的優化過後的** 

txtsql = "select * from worklog_info where "

stra = fieldname(combo1.text) & combo4.text & "'" & text1.text & "'"

strb = " " & combo7.text & " " & fieldname(combo2.text) & combo5.text & "'" & text2.text & "'"

strc = " " & combo6.text & " " & fieldname(combo3.text) & combo8.text & "'" & text3.text & "'"

txtsql = txtsql & stra & strb & strc

看上去,**簡單易懂,看上去沒有什麼破綻,但是執行起來問題就來了---查詢結果

每次都是滿足所有查詢條件的,如果查詢條件有為空的現象,查詢結果就會出現好多個

「」(引號),系統就會報錯,那怎麼辦呢?

新增下面**,對查詢條件進行判斷:

如果4為空,只顯示符合第1行查詢條件的結果

如果4不為空,5為空,只顯示符合1、2組合查詢的結果

如果4、5均不為空,顯示1、2、3組合查詢的結果

if combo7.text = "" then

txtsql = txtsql & stra

elseif not combo7.text = "" then

txtsql = txtsql & stra & strb

elseif not combo7.text = "" and combo8.text = "" then

txtsql = txtsql & stra & strb & strc

end if

再此,非常感謝小胖的幫助

在驗收專案的時候,師傅提到了如果欄位名為日期,那麼在要查詢的內容這一欄還要手動輸入日期是不是太麻煩呢?所以我們可以在要查詢內容這個text控制項後再加乙個日期控制項,當我們輸入欄位名之後判斷他是否為日期格式,如果是,就可以直接選擇日期,這樣是不是更完美了呢!得意

機房 組合查詢

前言 在剛剛開始機房的時候,僅僅剛剛把整個工程的窗體控制項佈完,聽一些同學說組合查詢有些難,並且我對他們的話深信不疑。但是你現在不做總會到一點時間你是需要去完成的,想到這些,便開始了探索同學們口中的 難 到底有多 難 邏輯分析 想要功能更快的實現,理清邏輯很關鍵。該動筆時就去拿筆畫,一味地在腦子裡想...

機房那些事兒 配置ODBC問題集錦

這篇文章主要寫配置odbc時候遇到的問題以及解決方案,希望能夠幫到大家 錯誤一 sql server 錯誤 2和sql server 錯誤 17 配置odbc時有這一步,此時需要輸入自己安裝資料庫時設定的賬號和密碼,此時,如果輸入不正確就會報錯sql server 錯誤 2和sql server 錯...

機房 組合查詢概要

機房慢慢搖,總結也是需要寫一寫的,下面介紹一下組合查詢。思路 前三個空為空 第乙個組合框 第二個組合 第二個組合框 第三個組合 查詢 if trim combrelation1.text then 選擇了第乙個組合關係後,第二行不能為空 if trim combfield2.text or trim...