美章網 資料文庫 VB5.0中數據庫查詢模塊范文

VB5.0中數據庫查詢模塊范文

本站小編為你精心準備了VB5.0中數據庫查詢模塊參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。

摘要:查詢模塊是數據庫管理系統中不可缺少的部分。本文介紹在vb5.0環境下四種數據庫查詢的實現方法,并主要介紹了使用SELECT-SQL語句來實現數據庫的查詢功能

關鍵字:VB5.0數據庫表查詢SQL

VB全稱VisualBasic,是微軟公司推出的基于Windows的可視化編程環境,以其簡單易學、編程簡潔、程序集成化高、功能強大而倍受程序員及廣大電腦愛好者的青睞。它在數據庫應用方面也有相當強大的功能。

查詢模塊是數據庫管理系統中不可缺少的部分。在VB中進行數據庫記錄查詢操作,根據打開數據庫的方式來確定。大概有四種查詢方法:SEEK方法查詢、FILTER屬性查詢、Find方法查詢、SQL查詢。本文對前三種方法只作簡單說明,著重介紹第四種SQL查詢方法。

1、SEEK方法查詢、FILTER屬性查詢、Find方法查詢的簡單說明。

用SEEK方法查詢:

這種方法只使用于以OPENbr方式打開的數據表,而且在查詢之前必須要對查詢字段建立索引文件,由于已建立了索引文件,所以查詢速度快,這種方式結果是將指針移到符合條件的第一個記錄。例如:

SETTB=DB.OPENbr(“INPUT”)

TB.INDEX=”NAMEINDEX”

TB.SEEK”=”,“石腦油”

用FILTER屬性查詢:

FILTER屬性查詢是用來過濾數據的,只要我們給定過濾條件就可以將所需的記錄篩選出來。需要說明的是,我們需要將以Filter屬性篩選出來的數據集打開才能對其進行操作。例如:

SetDy1=db.CreateDynaset(“input”)

Dy1.Filter=”物資名稱like‘石*’”

SetDy2.Dy1.CreateDynaset()

用Find方法查詢。

Find查詢有Findfirstfindnext兩個方法,每次查詢到一個記錄。例如:

SetDy=db.CreateDynaset(“input”)

S=”到貨數量>100and物資名稱like‘石腦油’”

Dy.FindfirstS

Dy.FindnextS

2、用SQL查詢。

2.1、Select-SQL查詢語句的格式:

SQL(STRUCTUREQUERYLANGUAGE)即結構化查詢語言,是查詢關系型數據庫的常用語言。由于SQL語言使用方便、功能豐富、簡單易學得到很快的應用和推廣,是各種關系型數據庫的公用語言。使用SQL查詢可以從一個表或多個表或視圖中對數據庫進行查詢(有關SQL的更多信息,請參閱相關書籍,本文不多介紹)。它的核心語句是Select-SQL語句。

Select-SQL查詢語句的格式:

SELECT[DICTINCT/ALL]----查詢目標列

FROMbrexpression----------表名/視圖名

[WHERE]---------------------------條件

[GROUPBY...]--------------------將查詢結果的記錄分組

[HAVING...]------------------------滿足條件的分組

[ORDERBY...]---------------------對查詢結果進行排序

下面應用筆者完成的《供應處物資管理軟件》為例,。說明使用SELECT-SQL查詢語句實現查詢模塊具體方法。

2.2單項查詢模塊的實現:

2.2.1應用的數據庫in_db.mdb中包含表:input字段名:物資名稱、供貨單位、供貨日期、到貨數量、總金額…….等等。

2.2.2定義窗體及控件:如下表

如圖(1):單項查詢模塊窗體圖

2.2.3編寫程序代碼:

上述設計完成后,可以對窗體及控件的事件編寫代碼:

‘變量定義

Dimmy_dbAsDatabaseDimmy_drAsRecordsetDimField_val1AsStringDimField_val3AsDate

DimField_val32AsDate

DimField_val4AsInteger

DimField_val42AsInteger

DimSearch_txtAsInteger

PrivateSubForm_Load()Search_txt=1Text1.Text=""Text2.Text=""Label2.Caption=""EndSub

PrivateSubCommand1_Click()‘確定按鈕

SelectCaseSearch_txt

Case1‘若選擇“物資名稱”

Field_val1=Text1.Text

Setmy_db=OpenDatabase("d:\zu_vb\in_db.mdb")

Setmy_dr=my_db.OpenRecordset("input")

ss1="select*frominputwhere(物資名稱="&"''''"&Field_val1&"'''')"

Data1.RecordSource=ss1

Data1.Refresh

Case2‘若選擇“供貨單位”

...

Case3‘若選擇“供貨日期”

Field_val3=Text1.Text

Field_val32=Text2.Text

IfVal(DateDiff("d",(Text1.Text),(Text2.Text)))>=0Then

Setmy_db=OpenDatabase("d:\zu_vb\in_db.mdb")

Setmy_dr=my_db.OpenRecordset("input")

ss1="select*frominputwhere供貨日期between"&"#"_

&Field_val3&"#"_&"and"&"#"&Field_val32&"#"Data1.RecordSource=ss1Data1.RefreshElsezz=MsgBox("您輸入的起始日期比終止日期大,請重新輸入!",vbCritical,"嚴重警告,輸入無效!")

EndIf

Case4‘若選擇“到貨數量”

Field_val4=Text1.Text

Field_val42=Text2.Text

Setmy_db=OpenDatabase("d:\zu_vb\in_db.mdb")

Setmy_dr=my_db.OpenRecordset("input")

ss1="select*frominputwhere到貨數量between"&Field_val4_

&"and"&Field_val42

Data1.RecordSource=ss1

Data1.Refresh

Case5

...

EndSelect

EndSub

PrivateSubCommand2_Click()‘取消查詢

Text1.Text=""

Text2.Text=""

EndSub

PrivateSubCommand3_Click()‘結束查詢

UnloadMe

EndSub

PrivateSubOption1_Click()‘選定“物資名稱”字段

Search_txt=1

Text1.Text=""

Label2.Caption=""

Text2.Enabled=False‘text2設為無效

Text2.Visible=False‘text2設為不顯示

Text1.SetFocus

EndSub

PrivateSubOption2_Click()‘選定“供貨單位”字段

(略)

EndSub

PrivateSubOption3_Click()‘選定“供貨日期”字段Search_txt=3Text1.Text=""Text1.Text=Date‘起始日期Text2.Text=Date‘終止日期

Label2.Caption="至"

Text2.Enabled=True

Text2.Visible=True

Text1.SetFocus

EndSub

PrivateSubOption4_Click()‘選定“到貨數量”字段

Search_txt=4

Text1.Text=""

Text2.Text=""

Text1.Text=Format(Text1.Text,"###,###,##0.00")‘設置字段格式為數值型

Text2.Text=Format(Text2.Text,"###,###,##0.00")‘設置字段格式為數值型

Label2.Caption="至"

Text2.Enabled=True

Text2.Visible=True

Text1.SetFocus

EndSub

PrivateSubOption5_Click()‘選定“總金額”字段

(略)

EndSub

PrivateSubText1_LostFocus()

‘判斷如果選定的是“供貨日期”字段,text1的輸入值必須是日期型的IfSearch_txt=3Then

IfNotIsDate(Text1.Text)Then

z=MsgBox("非法日期!請重新輸入!",vbCritical,"嚴重警告,輸入無效!")

Text1.SetFocus

EndIf

EndIf

EndSub

PrivateSubText2_LostFocus()

‘判斷如果選定的是“供貨日期”字段,text2的輸入值必須是日期型的

IfSearch_txt=3Then

Text2.Text=Format(Text2.Text,"yyyy-mm-dd")

IfNotIsDate(Text2.Text)Then

z=MsgBox("非法日期!請重新輸入!",vbCritical,"嚴重警告,輸入無效!")

Text2.SetFocus

EndIf

EndIf

EndSub

2.3多項復合查查詢模塊的實現:

2.3.1應用的數據庫in_db.mdb中包含表:input字段名:物資名稱、供貨單位、供貨日期、到貨數量、總金額…….等等。

2.3.2定義窗體及控件:如下表如圖(2)多項查詢模塊窗體圖

2.3.3編寫程序代碼:

上述設計完成后,可以對窗體及控件的事件編寫代碼:

下面程序可實現“物資名稱”為某值,供貨日期在一定范圍的采購明細的查詢。

‘定義變量

Dimmy_dbAsDatabaseDimmy_drAsRecordsetDimcom_txtAsStringDimtxt1AsDateDimtxt2AsDatePrivateSubCommand1_Click()

‘判斷如果輸入值不是日期型的,是無效值IfNotIsDate(Text1.Text)Thenz=MsgBox("非法起始日期,請重新輸入!",vbCritical,"嚴重警告,輸入無效!")

Text1.SetFocus

Else

IfNotIsDate(Text2.Text)Then

z=MsgBox("非法終止日期,請重新輸入!",vbCritical,"嚴重警告,輸入無效!")

Text2.SetFocus

Else

IfVal(DateDiff("d",(Text1.Text),(Text2.Text)))>=0Then

''''''''''''*****設置條件*********

com_txt=bo1.Text

txt1=Form5.Text1.Text

txt2=Form5.Text2.Text

Setmy_db=OpenDatabase("d:\zu_vb\in_db.mdb")

Setmy_dr=my_db.OpenRecordset("input")

ww1="select*frominputwhere(物資名稱="&"''''"&com_txt&"''''"_

…&"and(供貨日期between"&"#"&txt1&"#"_

&"and"&"#"&txt2&"#))"

Data1.RecordSource=ww1

Data1.Refresh

Else

zz=MsgBox("您輸入的起始日期比終止日期大,請重新輸入!",vbCritical,"嚴重警告,輸入無效!")

EndIf

EndIf

EndIf

EndSub

PrivateSubForm_Load()

‘將項目“石腦油”、輕烴、純苯………添加到combo1控件中

Combo1.AddItem"石腦油"

Combo1.AddItem"輕烴"

Combo1.AddItem"純苯"

Combo1.AddItem"丙烯腈"

Combo1.AddItem"甲基丙烯酸甲脂"

Combo1.AddItem"聚丁二烯乳膠"

Combo1.AddItem"C2"

Combo1.AddItem"C3/C4"

Combo1.AddItem"C5"

Combo1.AddItem"鹽酸"

Combo1.AddItem"液堿"

Combo1.Text="石腦油"‘設置combo1的初始值

Text1.Text=Date‘設置text1text2為日期形式,執行時并顯示當前日期。

Text2.Text=Date

EndSub

3、結束語:

本文對VB數據庫查詢功能做了簡單的說明,特別對Select-SQL語句進行了詳細的介紹,為了節省篇幅,以上只給出了窗體控件的屬性和代碼的核心部分,并去掉了許多修飾性的內容,感興趣的讀者在此基礎上稍加擴充或修改,便可得到更完善的通用查詢模塊。(以上程序均在WINDOWS98環境下VB5.0中運行通過。)

精品推薦
主站蜘蛛池模板: ww视频在线观看| 亚洲a视频在线观看| 美女主动张腿让男人桶| 国产欧美日韩视频在线观看| 99久久久国产精品免费牛牛| 少妇性饥渴无码A区免费| 久久久久成人精品免费播放动漫| 欧美三级一级片| 亚洲欧美综合区自拍另类| 看**一级**多毛片| 啦啦啦中文在线观看| 跪在校花脚下叼着女主人的鞋| 国产欧美在线观看一区| 8x国产在线观看| 天堂…在线最新版资源| 一级做α爱**毛片| 打开双腿粗大噗呲噗呲h| 久久婷婷五月综合国产尤物app | 日韩美女片视频| 亚洲国产精品无码久久久蜜芽| 爱情岛永久入口线路首页| 免费黄网在线观看| 翁熄系列回乡下| 国产亚洲3p无码一区二区| 国美女福利视频午夜精品| 国产精品久线观看视频| 80s国产成年女人毛片| 在线观看星空传媒入口| www.四虎影视| 小小视频在线版观看| 中文字幕15页| 护士好爽好深好多水| 久久久久久亚洲精品不卡| 日本高清在线中文字幕网| 九九精品免视看国产成人| 欧美三级视频在线| 亚洲国产精品日韩专区av| 欧美猛交xxxx免费看| 亚洲男人的天堂网站| 爱情岛论坛亚洲永久入口口| 免费a级毛片18以上观看精品|