1、1 / 8VB5.0 中数据库查询模块的实现摘要:查询模块是数据库管理系统中不可缺少的部分。本文介绍在环境下四种数据库查询的实现方法,并主要介绍了使用 SELECT-SQL 语句来实现数据库的查询功能 关键字: 数据库 表 查询 SQL VB 全称 Visual Basic,是微软公司推出的基于 Windows的可视化编程环境,以其简单易学、编程简洁、程序集成化高、功能强大而倍受程序员及广大电脑爱好者的青睐。它在数据库应用方面也有相当强大的功能。 查询模块是数据库管理系统中不可缺少的部分。在 VB中进行数据库记录查询操作,根据打开数据库的方式来确定。大概有四种查询方法:SEEK 方法查询、FI
2、LTER 属性查询、Find 方法查询、SQL 查询。本文对前三种方法只作简单说明,着重介绍第四种 SQL 查询方法。 1、SEEK 方法查询、FILTER 属性查询、Find 方法查询的简单说明。 用 SEEK 方法查询: 这种方法只使用于以 OPENTABLE 方式打开的数据表,而且在查询之前必须要对查询字段建立索引文件,由于已建立了索引文件,所以查询速度快,这种方式结果是将指针移到符合条件的第一个记录。例如: 2 / 8SET TB=(“INPUT”) =”NAMEINDEX” ”=”, “石脑油” 用 FILTER 属性查询: FILTER 属性查询是用来过滤数据的,只要我们给定过滤条
3、件就可以将所需的记录筛选出来。需要说明的是,我们需要将以 Filter 属性筛选出来的数据集打开才能对其进行操作。例如: Set Dy1= (“input”) =”物资名称 like 石* ” Set () 用 Find 方法查询。 Find 查询有 Findfirst findnext 两个方法,每次查询到一个记录。例如: Set Dy= (“input”) S=”到货数量100 and 物资名称 like 石脑油 ” S S 2、用 SQL 查询。 21、Select-SQL 查询语句的格式: SQL(STRUCTURE QUERY LANGUAGE)即结构化查询语言,是查询关系型数据库的
4、常用语言。由于 SQL 语言使用方便、3 / 8功能丰富、简单易学得到很快的应用和推广,是各种关系型数据库的公用语言。使用 SQL 查询可以从一个表或多个表或视图中对数据库进行查询(有关 SQL 的更多信息,请参阅相关书籍,本文不多介绍) 。它的核心语句是 Select- SQL 语句。 Select-SQL 查询语句的格式: SELECT DICTINCT/ALL-查询目标列 FROM tableexpression -表名/视图名 WHERE-条件 GROUP BY. -将查询结果的记录分组 HAVING. -满足条件的分组 ORDER BY. -对查询结果进行排序 下面应用笔者完成的供应
5、处物资管理软件为例, 。说明使用 SELECT-SQL 查询语句实现查询模块具体方法。 单项查询模块的实现: 应用的数据库 in_中包含表:input 字段名:物资名称、供货单位、供货日期、到货数量、总金额.等等 。 定义窗体及控件:如下表 主要控件及名称属性设置说明 Frame(frame1)caption 字段4 / 8选择 Optionbutton(Option1)caption 物资名称字段选择Optionbutton(Option2)caption 供货单位 Optionbutton(Option3)caption 供货日期 Optionbutton(Option4)caption
6、到货数量 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_Dbgrid(dbgrid1)datasourceData1 查询结果显示 如图(1):单项查询模块窗体
7、图编写程序代码: 上述设计完成后,可以对窗体及控件的事件编写代码:变量定义 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 5 / 8Private Sub Form_Load() Search_txt = 1 = “ = “ = “End Sub Pri
8、vate Sub Command1_Click() 确定按钮 Select Case Search_txt Case 1 若选择“物资名称” Field_val1 = Set my_db = OpenDatabase(“d:zu_vbin_“) Set my_dr = my_(“input“) ss1 = “select * from input where (物资名称=“ & “ & Field_val1 & “)“ = ss1 Case 2 若选择“供货单位” . . . Case 3 若选择“供货日期” Field_val3 = Field_val32 = If Val(DateDiff
9、(“d“, (), () = 0 Then Set my_db = OpenDatabase(“d:zu_vbin_“) Set my_dr = my_(“input“) ss1 = “select * from input where 供货日期 between “ & “#“ _ 6 / 8& Field_val3 & “#“ _ & “ and “ & “#“ & Field_val32 & “#“ = ss1 Else zz = MsgBox(“您输入的起始日期比终止日期大,请重新输入!“, vbCritical, “严重警告,输入无效!“) End If Case 4 若选择“到货数量
10、” Field_val4 = Field_val42 = Set my_db = OpenDatabase(“d:zu_vbin_“) Set my_dr = my_(“input“) ss1 = “select * from input where 到货数量 between “ & Field_val4 _ & “ and “ & Field_val42 = ss1 Case 5 . . . End Select End Sub Private Sub Command2_Click() 取消查询 = “ = “ 7 / 8End SubPrivate Sub Command3_Click()
11、 结束查询 Unload Me End Sub Private Sub Option1_Click() 选定“物资名称”字段 Search_txt = 1 = “ = “ = False text2 设为无效 = False text2 设为不显示 End Sub Private Sub Option2_Click() 选定“供货单位”字段 (略) End Sub Private Sub Option3_Click() 选定“供货日期”字段 Search_txt = = “ = Date 起始日期 = Date 终止日期 = “至“ = True 8 / 8= True End Sub Private Sub Option4_Click() 选定“到货数量”字段 Search_txt = 4 = “ = “ = Format(, “#,#,#“)设置字段格式为数值型 = Format(, “#,#,#“)设置字段格式为数值型 = “至“ = True = True End Sub Private Sub Option5_Click() 选定“总金额”字段 (略) End Sub P