1、VB5.0中数据库查询模块 摘要:查询模块是数据库管理系统中不可缺少的部分。本文介绍在环境下四种数据库查询的实现方法,并主要介绍了使用SELECT-SQL语句来实现数据库的查询功能 关键字:数据库表查询SQL VB全称VisualBasic,是微软公司推出的基于Windows的可视化编程环境,以其简单易学、编程简洁、程序集成化高、功能强大而倍受程序员及广大电脑爱好者的青睐。它在数据库应用方面也有相当强大的功能。 查询模块是数据库管理系统中不可缺少的部分。在VB中进行数据库记录查询操作,根据打开数据库的方式来确定。大概有四种查询方法:SEEK方法查询、FILTER属性
2、查询、Find方法查询、SQL查询。本文对前三种方法只作简单说明,着重介绍第四种SQL查询方法。 1、SEEK方法查询、FILTER属性查询、Find方法查询的简单说明。 用SEEK方法查询: 这种方法只使用于以OPENbr方式打开的数据表,而且在查询之前必须要对查询字段建立索引文件,由于已建立了索引文件,所以查询速度快,这种方式结果是将指针移到符合条件的第一个记录。例如: SETTB= =”NAMEINDEX” ”=”,“石脑油” 用FILTER属性查询: FILTER属性查询是用来过滤数据的,只要我们给定过滤条件就可以将所需的记录筛选出来。需
3、要说明的是,我们需要将以Filter属性筛选出来的数据集打开才能对其进行操作。例如: SetDy1= =”物资名称like‘石*’” 用Find方法查询。 Find查询有Findfirstfindnext两个方法,每次查询到一个记录。例如: SetDy= S=”到货数量>100and物资名称like‘石脑油’” 2、用SQL查询。 2.1、Select-SQL查询语句的格式: SQL即结构化查询语言,是查询关系型数据库的常用语言。由于SQL语言使用方便、功能丰富、简单易学得到很快的应用和推广,是各种关系型数据库的公用
4、语言。使用SQL查询可以从一个表或多个表或视图中对数据库进行查询。它的核心语句是Select-SQL语句。 Select-SQL查询语句的格式: SELECT[DICTINCT/ALL]----查询目标列 FROMbrexpression----------表名/视图名 [WHERE]---------------------------条件 [GROUPBY...]--------------------将查询结果的记录分组 [HAVING...]------------------------满足条件的分组 [ORDERBY...]--------
5、对查询结果进行排序 下面应用笔者完成的《供应处物资管理软件》为例,。说明使用SELECT-SQL查询语句实现查询模块具体方法。 单项查询模块的实现: 应用的数据库in_中包含表:input字段名:物资名称、供货单位、供货日期、到货数量、总金额…….等等。 定义窗体及控件:如下表 如图:单项查询模块窗体图 编写程序代码: 上述设计完成后,可以对窗体及控件的事件编写代码: ‘变量定义 Dimmy_dbAsDatabaseDimmy_drAsRecordsetDimField_val1AsStringDimField_v
6、al3AsDate DimField_val32AsDate DimField_val4AsInteger DimField_val42AsInteger DimSearch_txtAsInteger PrivateSubForm_LoadSearch_txt==""=""=""EndSub PrivateSubCommand1_Click‘确定按钮 SelectCaseSearch_txt Case1‘若选择“物资名称” Field_val1= Setmy_db=OpenDatabase Setmy_dr=my_ ss1
7、"select*frominputwhere" =ss1 Case2‘若选择“供货单位” ... Case3‘若选择“供货日期” Field_val3= Field_val32= IfVal,))>=0Then Setmy_db=OpenDatabase Setmy_dr=my_ ss1="select*frominputwhere供货日期between"&"#"_ &Field_val3&"#"_&"and"&"#"&Field_val32&"#"==MsgBox EndIf Case4‘若选择“到货数量
8、 Field_val4= Field_val42= Setmy_db=OpenDatabase Setmy_dr=my_ ss1="select*frominputwhere到货数量between"&Field_val4_ &"and"&Field_val42 =ss1 Case5 ... EndSelect EndSub PrivateSubCommand2_Click‘取消查询 ="" ="" EndSub PrivateSubCommand3_Click‘结束查询 Unload
9、Me EndSub PrivateSubOption1_Click‘选定“物资名称”字段 Search_txt=1 ="" ="" =False‘text2设为无效 =False‘text2设为不显示 EndSub PrivateSubOption2_Click‘选定“供货单位”字段 EndSub PrivateSubOption3_Click‘选定“供货日期”字段Search_txt==""=Date‘起始日期=Date‘终止日期 ="至" =True =True EndSub P
10、rivateSubOption4_Click‘选定“到货数量”字段 Search_txt=4 ="" ="" =Format‘设置字段格式为数值型 =Format‘设置字段格式为数值型 ="至" =True =True EndSub PrivateSubOption5_Click‘选定“总金额”字段 EndSub PrivateSubText1_LostFocus ‘判断如果选定的是“供货日期”字段,text1的输入值必须是日期型的IfSearch_txt=3Then IfNotIsDateThen
11、 z=MsgBox EndIf EndIf EndSub PrivateSubText2_LostFocus ‘判断如果选定的是“供货日期”字段,text2的输入值必须是日期型的 IfSearch_txt=3Then =Format IfNotIsDateThen z=MsgBox EndIf EndIf EndSub 2.3多项复合查查询模块的实现: 应用的数据库in_中包含表:input字段名:物资名称、供货单位、供货日期、到货数量、总金额…….等等。 定义窗体及控件:如下表如图多项
12、查询模块窗体图 编写程序代码: 上述设计完成后,可以对窗体及控件的事件编写代码: 下面程序可实现“物资名称”为某值,供货日期在一定范围的采购明细的查询。 ‘定义变量 Dimmy_dbAsDatabaseDimmy_drAsRecordsetDimcom_txtAsStringDimtxt1AsDateDimtxt2AsDatePrivateSubCommand1_Click ‘判断如果输入值不是日期型的,是无效值IfNotIsDateThenz=MsgBox Else IfNotIsDateThen z=MsgBox
13、Else IfVal,))>=0Then ''''''''''''*****设置条件********* com_txt= txt1= txt2= Setmy_db=OpenDatabase Setmy_dr=my_ ww1="select*frominputwhere)" =ww1 Else zz=MsgBox EndIf EndIf EndIf EndSub PrivateSubForm_Load ‘将项目“石脑油”、轻烃、纯苯………添加到combo1控件中 "石脑油"
14、"轻烃" "纯苯" "丙烯腈" "甲基丙烯酸甲脂" "聚丁二烯乳胶" "C2" "C3/C4" "C5" "盐酸" "液碱" ="石脑油"‘设置combo1的初始值 =Date‘设置text1text2为日期形式,执行时并显示当前日期。 =Date EndSub 3、结束语: 本文对VB数据库查询功能做了简单的说明,特别对Select-SQL语句进行了详细的介绍,为了节省篇幅,以上只给出了窗体控件的属性和代码的核心部分,并去掉了许多修饰性的内容,感兴趣的读者在此基础上稍加扩充或修改,便可得到更完善的通用查询模块。中数据库查询模块






