计算机应用论文-VB5.0中数据库查询模块的实现.doc_第1页
计算机应用论文-VB5.0中数据库查询模块的实现.doc_第2页
计算机应用论文-VB5.0中数据库查询模块的实现.doc_第3页
计算机应用论文-VB5.0中数据库查询模块的实现.doc_第4页
计算机应用论文-VB5.0中数据库查询模块的实现.doc_第5页
免费预览已结束,剩余5页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机应用论文-VB5.0中数据库查询模块的实现 摘要:查询模块是数据库管理系统中不可缺少的部分。本文介绍在VB5.0环境下四种数据库查询的实现方法,并主要介绍了使用SELECT-SQL语句来实现数据库的查询功能关键字:VB5.0 数据库 表 查询 SQLVB全称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 SDy.Findnext S2、用SQL查询。21、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_vbin_db.mdbDbgrid(dbgrid1)datasourceData1查询结果显示如图(1):单项查询模块窗体图2.2.3编写程序代码:上述设计完成后,可以对窗体及控件的事件编写代码:变量定义Dim my_db As Database Dim my_dr As Recordset Dim Field_val1 As String Dim Field_val3 As DateDim Field_val32 As DateDim Field_val4 As IntegerDim Field_val42 As IntegerDim Search_txt As IntegerPrivate Sub Form_Load() Search_txt = 1 Text1.Text = Text2.Text = Label2.Caption = End SubPrivate Sub Command1_Click() 确定按钮Select Case Search_txtCase 1 若选择“物资名称”Field_val1 = Text1.TextSet my_db = OpenDatabase(d:zu_vbin_db.mdb)Set my_dr = my_db.OpenRecordset(input)ss1 = select * from input where (物资名称= & & Field_val1 & )Data1.RecordSource = ss1Data1.RefreshCase 2 若选择“供货单位”. . .Case 3 若选择“供货日期”Field_val3 = Text1.TextField_val32 = Text2.TextIf Val(DateDiff(d, (Text1.Text), (Text2.Text) = 0 ThenSet my_db = OpenDatabase(d:zu_vbin_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 IfCase 4 若选择“到货数量”Field_val4 = Text1.TextField_val42 = Text2.TextSet my_db = OpenDatabase(d:zu_vbin_db.mdb)Set my_dr = my_db.OpenRecordset(input)ss1 = select * from input where 到货数量 between & Field_val4 _& and & Field_val42Data1.RecordSource = ss1Data1.RefreshCase 5. . .End SelectEnd SubPrivate Sub Command2_Click() 取消查询Text1.Text = Text2.Text = End SubPrivate Sub Command3_Click() 结束查询Unload MeEnd SubPrivate Sub Option1_Click() 选定“物资名称”字段Search_txt = 1Text1.Text = Label2.Caption = Text2.Enabled = False text2 设为无效Text2.Visible = False text2 设为不显示Text1.SetFocusEnd SubPrivate Sub Option2_Click() 选定“供货单位”字段(略)End SubPrivate Sub Option3_Click() 选定“供货日期”字段Search_txt = 3Text1.Text = Text1.Text = Date 起始日期Text2.Text = Date 终止日期Label2.Caption = 至Text2.Enabled = TrueText2.Visible = TrueText1.SetFocusEnd SubPrivate Sub Option4_Click() 选定“到货数量”字段Search_txt = 4Text1.Text = Text2.Text = Text1.Text = Format(Text1.Text, #,#,#0.00)设置字段格式为数值型Text2.Text = Format(Text2.Text, #,#,#0.00)设置字段格式为数值型Label2.Caption = 至Text2.Enabled = TrueText2.Visible = TrueText1.SetFocusEnd SubPrivate Sub Option5_Click() 选定“总金额”字段(略)End SubPrivate Sub Text1_LostFocus()判断如果选定的是“供货日期”字段,text1的输入值必须是日期型的 If Search_txt = 3 ThenIf Not IsDate(Text1.Text) Thenz = MsgBox( 非法日期!请重新输入 !, vbCritical, 严重警告,输入无效 !)Text1.SetFocusEnd IfEnd IfEnd SubPrivate Sub Text2_LostFocus()判断如果选定的是“供货日期”字段,text2的输入值必须是日期型的If Search_txt = 3 ThenText2.Text = Format(Text2.Text, yyyy-mm-dd)If Not IsDate(Text2.Text) Thenz = MsgBox( 非法日期!请重新输入 !, vbCritical, 严重警告,输入无效 !)Text2.SetFocusEnd IfEnd IfEnd Sub23多项复合查查询模块的实现:2.3.1应用的数据库in_db.mdb中包含表:input 字段名:物资名称、供货单位、供货日期、到货数量、总金额.等等 。2.3.2定义窗体及控件:如下表 主要控件及名称属性设置说明 Frame(frame1)caption查询条件选择ComboBoxcaption为空物资名称选择TextBox(text1)Text为空起始日期TextBox(text2)Text为空终止日期CommandButton(command1)caption确定确定本次查询CommandButton(command2)caption结束结束查询Data(data1)Caption数据浏览 databasenamed:zu_vbin_db.mdbDbBrid(dbgrid1)datasourceData1查询结果显示如图(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.SetFocusElseIf Not IsDate(Text2.Text) Thenz = MsgBox(非法终止日期,请重新输入!, vbCritical, 严重警告,输入无效!)Text2.SetFocusElseIf Val(DateDiff(d, (Text1.Text), (Text2.Text) = 0 Then*设置条件*com_txt = Form5.Combo1.Texttxt1 = Form5.Text1.Texttxt2 = Form5.Text2.TextSet my_db = OpenDatabase(d:zu_vbin_db.mdb)Set my_dr = my_db.OpenRecordset(input)ww1 = select * from input where (物资名称= & & com_txt & _ & and (供货日期 between & # & txt1 & # _& and & # & txt2 & #)Data1.RecordSource

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论