久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

VB5.0中數(shù)據(jù)庫查詢模塊的實(shí)現(xiàn)

時(shí)間:2024-09-20 23:56:13 計(jì)算機(jī)畢業(yè)論文 我要投稿
  • 相關(guān)推薦

VB5.0中數(shù)據(jù)庫查詢模塊的實(shí)現(xiàn)

摘要:查詢模塊是數(shù)據(jù)庫管理系統(tǒng)中不可缺少的部分。本文介紹在VB5.0環(huán)境下四種數(shù)據(jù)庫查詢的實(shí)現(xiàn)方法,并主要介紹了使用SELECT-SQL語句來實(shí)現(xiàn)數(shù)據(jù)庫的查詢功能

關(guān)鍵字:VB5.0 數(shù)據(jù)庫 表 查詢 SQL

VB全稱Visual Basic,是微軟公司推出的基于Windows的可視化編程環(huán)境,以其簡(jiǎn)單易學(xué)、編程簡(jiǎn)潔、程序集成化高、功能強(qiáng)大而倍受程序員及廣大電腦愛好者的青睞。它在數(shù)據(jù)庫應(yīng)用方面也有相當(dāng)強(qiáng)大的功能。

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

1、SEEK方法查詢、FILTER 屬性查詢、Find 方法查詢的簡(jiǎn)單說明。

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

SET TB=DB.OPENTABLE(“INPUT”)

TB.INDEX=”NAMEINDEX”

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

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

Set Dy1=db.CreateDynaset (“input”)

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

Set Dy2.Dy1.CreateDynaset ()

用Find 方法查詢。
Find查詢有Findfirst findnext 兩個(gè)方法,每次查詢到一個(gè)記錄。例如:

Set Dy=db.CreateDynaset (“input”)

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

Dy.Findfirst S

Dy.Findnext S

2、用SQL查詢。

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

SQL(STRUCTURE QUERY LANGUAGE)即結(jié)構(gòu)化查詢語言,是查詢關(guān)系型數(shù)據(jù)庫的常用語言。由于SQL語言使用方便、功能豐富、簡(jiǎn)單易學(xué)得到很快的應(yīng)用和推廣,是各種關(guān)系型數(shù)據(jù)庫的公用語言。使用SQL查詢可以從一個(gè)表或多個(gè)表或視圖中對(duì)數(shù)據(jù)庫進(jìn)行查詢(有關(guān)SQL的更多信息,請(qǐng)參閱相關(guān)書籍,本文不多介紹)。它的核心語句是Select- SQL語句。

Select-SQL查詢語句的格式:



SELECT [DICTINCT/ALL]----查詢目標(biāo)列

FROM tableexpression ----------表名/視圖名

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

[GROUP BY... ]--------------------將查詢結(jié)果的記錄分組

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

[ORDER BY... ]---------------------對(duì)查詢結(jié)果進(jìn)行排序

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

2.2單項(xiàng)查詢模塊的實(shí)現(xiàn):

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

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

如圖(1):?jiǎn)雾?xiàng)查詢模塊窗體圖

2.2.3編寫程序代碼:

上述設(shè)計(jì)完成后,可以對(duì)窗體及控件的事件編寫代碼:

‘變量定義

Dim my_db As Database Dim my_dr As Recordset Dim Field_val1 As String Dim Field_val3 As Date

Dim Field_val32 As Date

Dim Field_val4 As Integer

Dim Field_val42 As Integer

Dim Search_txt As Integer

Private Sub Form_Load() Search_txt = 1 Text1.Text = "" Text2.Text = ""Label2.Caption = ""End Sub

Private Sub Command1_Click() ‘確定按鈕

Select Case Search_txt

Case 1 ‘若選擇“物資名稱”

Field_val1 = Text1.Text

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


Set my_dr = my_db.OpenRecordset("input")

ss1 = "select * from input where (物資名稱=" & "'" & Field_val1 & "')"

Data1.RecordSource = ss1

Data1.Refresh

Case 2 ‘若選擇“供貨單位”

. . .

Case 3 ‘若選擇“供貨日期”

Field_val3 = Text1.Text

Field_val32 = Text2.Text

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

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

Set my_dr = my_db.OpenRecordset("input")

ss1 = "select * from input where 供貨日期 between " & "#" _

& Field_val3 & "#" _ & " and " & "#" & Field_val32 & "#" Data1.RecordSource = ss1 Data1.Refresh Else zz = MsgBox("您輸入的起始日期比終止日期大,請(qǐng)重新輸入!", vbCritical, "嚴(yán)重警告,輸入無效!")

End If

Case 4 ‘若選擇“到貨數(shù)量”

Field_val4 = Text1.Text

Field_val42 = Text2.Text

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

Set my_dr = my_db.OpenRecordset("input")

ss1 = "select * from input where 到貨數(shù)量 between " & Field_val4 _

& " and " & Field_val42

Data1.RecordSource = ss1

Data1.Refresh

Case 5

. . .

End Select

End Sub

Private Sub Command2_Click() ‘取消查詢

Text1.Text = ""

Text2.Text = ""

End Sub

Private Sub Command3_Click() ‘ 結(jié)束查詢

Unload Me

End Sub

Private Sub Option1_Click() ‘選定“物資名稱”字段

Search_txt = 1

Text1.Text = ""

Label2.Caption = ""

Text2.Enabled = False ‘text2 設(shè)為無效

Text2.Visible = False ‘text2 設(shè)為不顯示

Text1.SetFocus



End Sub

Private Sub Option2_Click() ‘選定“供貨單位”字段

(略)

End Sub

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

Label2.Caption = "至"

Text2.Enabled = True

Text2.Visible = True

Text1.SetFocus

End Sub

Private Sub Option4_Click() ‘選定“到貨數(shù)量”字段

Search_txt = 4

Text1.Text = ""

Text2.Text = ""

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

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

Label2.Caption = "至"

Text2.Enabled = True

Text2.Visible = True

Text1.SetFocus

End Sub

Private Sub Option5_Click() ‘選定“總金額”字段

(略)

End Sub

Private Sub Text1_LostFocus()

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

If Not IsDate(Text1.Text) Then

z = MsgBox(" 非法日期!請(qǐng)重新輸入 !", vbCritical, "嚴(yán)重警告,輸入無效 !")

Text1.SetFocus

End If

End If

End Sub

Private Sub Text2_LostFocus()

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

If Search_txt = 3 Then

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

If Not IsDate(Text2.Text) Then

z = MsgBox(" 非法日期!請(qǐng)重新輸入 !", vbCritical, "嚴(yán)重警告,輸入無效 !")

Text2.SetFocus

End If

End If

End Sub
 


2.3多項(xiàng)復(fù)合查查詢模塊的實(shí)現(xiàn):

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

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

如圖(2)多項(xiàng)查詢模塊窗體圖

2.3.3編寫程序代碼:

上述設(shè)計(jì)完成后,可以對(duì)窗體及控件的事件編寫代碼:

下面程序可實(shí)現(xiàn)“物資名稱”為某值,供貨日期在一定范圍的采購(gòu)明細(xì)的查詢。

‘定義變量

Dim my_db As Database Dim my_dr As Recordset Dim com_txt As String Dim txt1 As Date Dim txt2 As Date Private Sub Command1_Click()

‘判斷如果輸入值不是日期型的,是無效值 If Not IsDate(Text1.Text) Then z = MsgBox("非法起始日期,請(qǐng)重新輸入!", vbCritical, "嚴(yán)重警告,輸入無效!")

Text1.SetFocus

Else

If Not IsDate(Text2.Text) Then

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

Text2.SetFocus

Else

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

'''*****設(shè)置條件*********

com_txt = Form5.Combo1.Text

txt1 = Form5.Text1.Text

txt2 = Form5.Text2.Text

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

Set my_dr = my_db.OpenRecordset("input")

ww1 = "select * from input where (物資名稱=" & "'" & com_txt & "'" _

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

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

Data1.RecordSource = ww1

Data1.Refresh

Else



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

End If

End If

End If

End Sub

Private Sub Form_Load()

‘將項(xiàng)目“石腦油”、輕烴、純苯………添加到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 = "石腦油" ‘設(shè)置 combo1的初始值

Text1.Text = Date ‘設(shè)置text1 text2 為日期形式,執(zhí)行時(shí)并顯示當(dāng)前日期。

Text2.Text = Date

End Sub

3、結(jié)束語:

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

【VB5.0中數(shù)據(jù)庫查詢模塊的實(shí)現(xiàn)】相關(guān)文章:

數(shù)據(jù)庫管理系統(tǒng)中的模糊查詢技術(shù)03-03

應(yīng)用LabSQL實(shí)現(xiàn)LabVIEW中數(shù)據(jù)庫的訪問03-07

基于FPGA的HDLC通信模塊的實(shí)現(xiàn)05-14

淺析數(shù)據(jù)庫管理系統(tǒng)中模糊查詢技術(shù)的正確使用03-04

高校信息查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)03-28

用CPLD實(shí)現(xiàn)單片機(jī)讀寫模塊03-20

ERP中的物流模塊研究12-04

實(shí)現(xiàn)基于網(wǎng)頁的數(shù)據(jù)庫數(shù)據(jù)導(dǎo)入03-18

基于DSP的擴(kuò)頻電臺(tái)基帶模塊的設(shè)計(jì)與實(shí)現(xiàn)03-18