摘要:在編程語言中,它簡單易學、效率高,且功能強大可以與 Windows 專業開發工具SDK相媲美。在VB中,利用事件驅動的編程機制、新穎易用的可視化設計工具,使用Windows內部的廣泛應用程序接口(API)函數,動態鏈接庫(DLL)、對象的鏈接與嵌入(OLE)、開放式數據連接(ODBC)等技術,可以高效、快速地開發Windows環境下功能強大、圖形界面豐富的應用軟件系統VB給大家的印象極為深刻。讓VB程序編寫的前臺連接上后臺數據庫,功能則會更加強勁,但為難的是實現數據庫后臺,那又得再去深入學習數據庫語言,掌握難度大幅度提升。在此,我們就去尋求一種VB語言實現的查詢方式。
關鍵詞:VB數據庫 查詢
對于VB程序設計語言,想必大家都不陌生,它可謂是功能強大且簡單易學,對計算機編程語言初學者來說是非常不錯的一種選擇,但是一個合格的程序并不能單純的只有程序,還必須和數據庫相連接才能得到更廣泛的使用。在VB程序中,也同樣可以連接各種數據庫,比如以DATA控件連接SQL、以ADO控件連接Access,但是基本上所有的對數據庫的查詢操都必須要用標準SQL語句,無形中就增加了我們編寫程序的難度。那么,這里我就介紹一種直接使用程序語言就可以實現查詢的方法。
VB數據庫中的數據連接方式有多種,包括最為基本的ODBC數據源連接方式和DATA數據控件的連接方式,但此類數據操作必須要以數據庫語言作為支持才能實現后臺數據的連接支持,因此,在這里不予考慮。除此以外,還有另一種方式,那就是大家都比較熟悉的ADO控件方式,雖然ADO方式一般來說同樣使用SQL語句,但它多了以連接字符串的數據方式。這里,我以一個“工控機系統”設計的例子作為數據,進行操作,并以字符類型通過VB語句實現相關的功能。
使用VB中的ADO控件,連接上相應的數據文件,這里使用的是Access數據庫,再以VB中的DataGrid控件和數據庫相連接,其中包含“產品現型號”、“產品原型號”、“產品價格”和“性能描述”這四個字段名稱,通過AddNew方法實現添加、Delete方法實現刪除,下面我們就來進入查詢的環節。
首先,我以Recordset這一屬性對其數據庫的“產品現型號”字段進行定位,然后以InputBox輸入對話框輸入需要查詢的該字段的值,程序如下:
searchname = InputBox(\"請輸入產品現型號\")
If searchname = \"\" Then
err = MsgBox(\"內容不能為空,請重新輸入\", 48, \"警告\")
‘當輸入的是空值時,提出錯誤警告
如果輸入的值確實有效,那么執行程序如下:
Else
While Form2.Adodc1.Recordset.Fields(\"產品現型號\") <> UCase(searchname)
‘使用UCase參數,將輸入的字母統一轉換為大寫
Form2.Adodc1.Recordset.MoveNext
‘在查詢之前,先將光標位置移動到第一欄,便于查詢
If Form2.Adodc1.Recordset.EOF Then
b = MsgBox(\"查無此型號,請重新輸入\", 16, \"錯誤\")
‘若查詢到了該字段的最后一項還是沒有的話,就彈出出錯提示
在這里,由于仍然是在While循環里面,因此要注意程序語言的處理,往往我們結束While循環是用Wend,但此處并沒有給出能夠結束循環的語句,如果強行寫上Wend就會出現死循環;同時也不能使用我們以往常常用的End來表示結束,那樣會一下子結束了整個程序,這也不是我們想要達到的效果。那么,如何才能達到既退出該循環又繼續保留運行狀態的效果呢?我們可以寫出程序如下:
Exit Sub
‘Exit是局部的退出,在其后跟上Sub就表示僅僅退出當前的循環這一塊
這樣,通過Exit語句退出循環這一塊后,我們還能夠繼續執行如下的程序:
Form2.Adodc1.Recordset.MoveFirst
‘將查詢完成后的光標位置再移回第一欄,以便于下次查詢
End
End If
Wend
‘到這里循環完全結束
Form2.Text1.Text = Form2.Adodc1.Recordset.Fields(\"產品現型號\")
Form2.Text2.Text = Form2.Adodc1.Recordset.Fields(\"產品原型號\")
Form2.Text3.Text = Form2.Adodc1.Recordset.Fields(\"產品價格\")
Form2.Text4.Text = Form2.Adodc1.Recordset.Fields(\"性能描述\")
‘若是查詢到了相應的數據,將其所有的相關參數都顯示在文本框中
到此,關于查詢的語句就全部結束了,我們可以在VB的前臺界面上看到自己的相關數據已經被檢索出來了。從編程角度來看,這段代碼的時間復雜度和空間復雜度沒有任何問題;而從數據庫的角度來看,檢索速度在中小規模的數據表中,也達到了我們的要求。因此,使用本文所述的方法實現數據查詢是成功可行的。
通過上述的操作,我們就能夠實現相應的數據查詢,使用者可以避免再去學習更為深入的數據庫語言,同樣能夠達到想要的效果。這樣,無形中VB的實用性更高了一層,更為廣大的編程初學者所喜愛。