杨倩 廊坊师范学院信息技术提高班 十二期

这两天实现了组合查询的基本功能,发现很多有意思的事儿。大家一起来看看是不是很有趣!

【趣味一】代码的复用

“多个不同的事件过程需要执行一段相同的程序代码,完成相同或相似的任务,为了避免程序代码的重复,也便于程序的修改,可以把这一段代码独立出来,作为一个过程,这样的过程称为通用过程,该过程独立于事件过程,可供事件过程和其他通用过程调用。”——此段话出自《VB程序设计》P168页,有兴趣的同学可以再次深入的研究一下。

实例一:窗体模块

</pre><pre name="code" class="vb"><span style="font-size:18px;">Public Function tianjia()'自定义函数,当查询成功后,调用此函数,显示数据库内容Set mrc = ExecuteSQL(txtSQL, Msgtext)'在line表中查询记录With myflexgrid'在grid控件中加载字段.Rows = 1.CellAlignment = 4.TextMatrix(0, 0) = "卡号".TextMatrix(0, 1) = "姓名".TextMatrix(0, 2) = "上机日期".TextMatrix(0, 3) = "上机时间".TextMatrix(0, 4) = "下机日期".TextMatrix(0, 5) = "下机时间".TextMatrix(0, 6) = "消费金额".TextMatrix(0, 7) = "金额".TextMatrix(0, 8) = "备注"Do While Not mrc.EOF.Rows = .Rows + 1'在grid控件中显示数据库数据.CellAlignment = 4.TextMatrix(.Rows – 1, 0) = Trim(mrc.Fields(1))'trim函数目的是使grid表格内容显示完整。.TextMatrix(.Rows – 1, 1) = Trim(mrc.Fields(3)).TextMatrix(.Rows – 1, 2) = Format(mrc.Fields(6), "yyyy-mm-dd").TextMatrix(.Rows – 1, 3) = Format(mrc.Fields(7), "hh:mm:ss").TextMatrix(.Rows – 1, 4) = Format(mrc.Fields(8), "yyyy-mm-dd").TextMatrix(.Rows – 1, 5) = Format(mrc.Fields(9), "hh:mm:ss").TextMatrix(.Rows – 1, 6) = Trim(mrc.Fields(11)).TextMatrix(.Rows – 1, 7) = Trim(mrc.Fields(12)).TextMatrix(.Rows – 1, 8) = Trim(mrc.Fields(13))mrc.MoveNext'查询下一条记录Loopmrc.Close'关闭数据库记录集End WithEnd Function</span>此段代码是直接写在窗体中的,不用放在模块中,因为这个代码的使用范围只是在一个窗体中。执行查询的时候,直接一句话:call tianjia(过程名),,是不是很管用啊?

实例二:标准模块

</pre><pre name="code" class="vb"><span style="font-size:18px;">Public Function Field(strfilename As String) As String'选项转化成数据库字段Select Case strfilenameCase "学号"Field = "studentNo"Case "姓名"Field = "studentName"Case "卡号"Field = "cardno"Case "系别"Field = "department"Case "年级"Field = "grade"Case "班级"Field = "class"Case "性别"Field = "sex"Case "与"Field = "and"Case "或"Field = "or"Case "状态"Field = "status"Case "备注"Field = "explain"Case "日期"Field = "date"Case "时间"Field = "time"Case "金额"Field = "cash"Case "类型"Field = "type"Case "教师"Field = "UserID"Case "注册日期"Field = "LoginDate"Case "注册时间"Field = "LoginTime"Case "注销时间"Field = "LogoutDate"Case "注销时间"Field = "LogoutTime"Case "机器名"Field = "computer"End SelectEnd Function</span>在模块中写入以上代码,作用是每当组合查询的时候都要将combox选项字段转化为数据库中的字段名称,这样在查询语句的时候,字段作为条件就可以直接在数据库中查找数据了。模块的适用范围是将多个窗体中相同的过程,抽取出来并得到复用。并在所需要的窗体写一下查询语句中,实现调用。<span style="font-size:18px;">txtSQL = txtSQL & Field(com01.Text) & com02.Text & "'" & txt03.Text & "'"</span>在这里,我们把窗体模块和模块作了一个简单的介绍,一样的是都是代码的复用,不一样的是写入代码的位置不同,最重要的是实现功能。实现通用过程的优点是,减少代码,便于修改。这些优点都为我们节省了很多的时间,使我们的效率得到提升。

【趣味二】流程图

在流程图的帮助,代码也就跟上了脚步。为什么这么说呢?每一步流程,代表的就是身后代码的支持。最后实现最后的功能,并且不至于一头雾水,我就在这里吃了亏,后来一直都停步不前,直到理清思路,代码问题也就迎刃而解了。那大家先来看一下我的流程图吧。

【趣味三】正常思维

实现了查询功能,可就是看着别扭,听了师父的建议,我才思考到了这一点,正常人的思维。

实例一:

首先,我们需要的只是第一行查询条件,二、三行都不可用。

查询第一行输入之后,判断组合关系是否为空,如果为空的话,直接出现查询结果;否则,提示“输入第二行查询内容”。

同理,判断第二个组合关系。

实例二:

多对自己说“我能行,我一定可以”,

杨倩 廊坊师范学院信息技术提高班 十二期

相关文章:

你感兴趣的文章:

标签云: