VB5.0中数据库查询模块的实现 开始下载

  • 资源大小: 0KB
  • 资源语言: 简体中文
  • 资源类别: / 计 算 机
  • 运行环境: Win9x|Me|NT|2000|XP|2003
  • 授权方式: 免费版
  • 资源等级: 3星级
  • 整理时间: 2008-2-7 11:11:22
  • 相关链接:
  • 解压密码: www.cnpaper8.com
  • 插件情况:
  • 该资源经过三种杀毒软件检测,结果如下:
  • 卡巴检测: 安全 瑞星检测: 安全 麦咖啡检测: 安全

简介 Soft Introduction

摘要:查询模块是数据库管理系统中不可缺少的部分。本文介绍在VB5.0环境下四种数据库查询的实现方法,并主要介绍了使用SELECT-SQL语句来实现数据库的查询功能

关键字:VB5.0 数据库 表 查询 SQL

VB全称Visual Basic,是微软公司推出的基于Windows的可视化编程环境,以其简单易学、编程简洁、程序集成化高、功能强大而倍受程序员及广大电脑爱好者的青睐。它在数据库应用方面也有相当强大的功能。

查询模块是数据库管理系统中不可缺少的部分。在VB中进行数据库记录查询操作,根据打开数据库的方式来确定。大概有四种查询方法:SEEK方法查询、FILTER 属性查询、Find 方法查询、SQL查询。本文对前三种方法只作简单说明,着重介绍第四种SQL查询方法。

1、SEEK方法查询、FILTER 属性查询、Find 方法查询的简单说明。

用SEEK方法查询:
这种方法只使用于以OPENTABLE 方式打开的数据表,而且在查询之前必须要对查询字段建立索引文件,由于已建立了索引文件,所以查询速度快,这种方式结果是将指针移到符合条件的第一个记录。例如:

SET TB=DB.OPENTABLE(“INPUT”)

TB.INDEX=”NAMEINDEX”

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

用FILTER 属性查询:
FILTER属性查询是用来过滤数据的,只要我们给定过滤条件就可以将所需的记录筛选出来。需要说明的是,我们需要将以Filter属性筛选出来的数据集打开才能对其进行操作。例如:

Set Dy1=db.CreateDynaset (“input”)

Dy1.Filter=”物资名称 like ‘石*’”

Set Dy2.Dy1.CreateDynaset ()

用Find 方法查询。
Find查询有Findfirst findnext 两个方法,每次查询到一个记录。例如:

Set Dy=db.CreateDynaset (“input”)

S=”到货数量>100 and 物资名称like ‘石脑油’”

Dy.Findfirst S

Dy.Findnext S

2、用SQL查询。

2.1、Select-SQL查询语句的格式:

SQL(STRUCTURE QUERY LANGUAGE)即结构化查询语言,是查询关系型数据库的常用语言。由于SQL语言使用方便、功能丰富、简单易学得到很快的应用和推广,是各种关系型数据库的公用语言。使用SQL查询可以从一个表或多个表或视图中对数据库进行查询(有关SQL的更多信息,请参阅相关书籍,本文不多介绍)。它的核心语句是Select- SQL语句。

Select-SQL查询语句的格式:

SELECT [DICTINCT/ALL]----查询目标列

FROM tableexpression ----------表名/视图名

[WHERE]---------------------------条件

[GROUP BY... ]--------------------将查询结果的记录分组

[HAVING... ]------------------------满足条件的分组

[ORDER BY... ]---------------------对查询结果进行排序

下面应用笔者完成的《供应处物资管理软件》为例,。说明使用SELECT-SQL查询语句实现查询模块具体方法。

2.2单项查询模块的实现:

2.2.1应用的数据库in_db.mdb中包含表:input 字段名:物资名称、供货单位、供货日期、到货数量、总金额…….等等 。

2.2.2定义窗体及控件:如下表

主要控件及名称 属性 设置 说明 Frame(frame1) caption 字段选择 Optionbutton(Option1) caption 物资名称 字段选择 Optionbutton(Option2) caption 供货单位 Optionbutton(Option3) caption 供货日期 Optionbutton(Option4) caption 到货数量 Optionbutton(Option5) caption 总金额 Textbox(text1) Text 为空 查询值 Textbox(text2) Text 为空 Commandbutton(command1) caption 确定 确定本次查询 Commandbutton(command2) caption 取消 取消本次查询 Commandbutton(command3) caption 结束 结束查询 Data(data1) Caption 数据浏览 databasename d:\zu_vb\in_db.mdb Dbgrid(dbgrid1) datasource Data1 查询结果显示

如图(1):单项查询模块窗体图

2.2.3编写程序代码:

上述设计完成后,可以对窗体及控件的事件编写代码:

‘变量定义

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("您输入的起始日期比终止日期大,请重新输入!", vbCritical, "严重警告,输入无效!")

End If

Case 4 ‘若选择“到货数量”

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 到货数量 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() ‘ 结束查询

Unload Me

End Sub

Private Sub Option1_Click() ‘选定“物资名称”字段

Search_txt = 1

Text1.Text = ""

Label2.Caption = ""

Text2.Enabled = False ‘text2 设为无效

Text2.Visible = False ‘text2 设为不显示

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() ‘选定“到货数量”字段

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

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(" 非法日期!请重新输入 !", vbCritical, "严重警告,输入无效 !")

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(" 非法日期!请重新输入 !", vbCritical, "严重警告,输入无效 !")

Text2.SetFocus

End If

End If

End Sub

2.3多项复合查查询模块的实现:

2.3.1应用的数据库in_db.mdb中包含表:input 字段名:物资名称、供货单位、供货日期、到货数量、总金额…….等等 。

2.3.2定义窗体及控件:如下表

主要控件及名称 属性 设置 说明 Frame(frame1) caption 查询条件选择 ComboBox caption 为空 物资名称选择 TextBox(text1) Text 为空 起始日期 TextBox(text2) Text 为空 终止日期 CommandButton(command1) caption 确定 确定本次查询 CommandButton(command2) caption 结束 结束查询   Data(data1) Caption 数据浏览   databasename d:\zu_vb\in_db.mdb DbBrid(dbgrid1) datasource Data1 查询结果显示

如图(2)多项查询模块窗体图

2.3.3编写程序代码:

上述设计完成后,可以对窗体及控件的事件编写代码:

下面程序可实现“物资名称”为某值,供货日期在一定范围的采购明细的查询。

‘定义变量

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("非法起始日期,请重新输入!", vbCritical, "严重警告,输入无效!")

Text1.SetFocus

Else

If Not IsDate(Text2.Text) Then

z = MsgBox("非法终止日期,请重新输入!", vbCritical, "严重警告,输入无效!")

Text2.SetFocus

Else

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

'''*****设置条件*********

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("您输入的起始日期比终止日期大,请重新输入!", vbCritical, "严重警告,输入无效!")

End If

End If

End If

End Sub

Private Sub Form_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 ‘设置text1 text2 为日期形式,执行时并显示当前日期。

Text2.Text = Date

End Sub

3、结束语:

本文对VB数据库查询功能做了简单的说明,特别对Select-SQL语句进行了详细的介绍,为了节省篇幅,以上只给出了窗体控件的属性和代码的核心部分,并去掉了许多修饰性的内容,感兴趣的读者在此基础上稍加扩充或修改,便可得到更完善的通用查询模块。(以上程序均在WINDOWS98环境下VB5.0中运行通过。)

下载地址列表页面(直接点击进入,下载地址在内页) Download URL

相关说明 Attentions

  • 若您发现不能下载或错误,请[点这里报告错误],方便我们尽快修复,谢谢.
  • 为了保证您快速的下载速度,我们推荐您使用[网际快车]等专业工具下载.
  • 为确保下载的资源能正常使用,请使用[WinRAR v3.62]或以上版本解压本站资源.
  • 为保证下载速度,本站限制同时下载人数为500人,若连接不上,可能是下载上限,请过段时间再来.
  • 为保证下载速度,本站限制每IP只允许使用1个线程下载,多线程连接将会封锁整个IP段999分钟.
  • 请尽量避过下载高峰期,最佳下载时段:0点至早上10点,这样 资源更容易连接上,速度也会更快.
  • 免责声明:本站所有资源和资料来自网络,仅为测试带宽及电脑性能所用,请在下载24小时内删除.
  • 本资源为网上收集,若无意中侵犯了您的版权,请与我们联系.

相关评论 Soft Comments

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部