前言
第一次看到学生基本信息维护这一窗体时,第一反应就是大写的“懵”。。。完全不知道这里用到什么知识,有点望而却步的感觉。可真当静下心来,却发现它其实就是学生信息管理系统中类似查询学籍信息的窗体,大同小异。这个时候,我才开始重新看这个窗体,重新思考组合查询,以及查看学生中的相关代码。
万事开头难!明白窗体用到哪些核心知识,其他问题自然迎刃而解。
与学生之对比
1.界面
学生:
机房:
2.内容:
而机房相比学生,关系就要更复杂一些,一个条件的设定就必须包含三个控件的内容,三个条件的关系分为两种,即“与””或”。且其在选择中有一定的顺序:只有第一行的条件全部填好,才可以选择第一个组合关系;同理,只有前两行的条件及第一个组合关系按顺序填好,才可以选择第二个组合关系,进而填写第三行条件。
思路分析
流程图
中心代码
(以学生基本信息维护为例)
Stutxtsql = "select * from student_Info where" '在student_Info这张表中获得整行记录。其中*表示整行记录,也可以换成你需要查询的具体记录。 If Trim(Combo1.Text) = "" Or Trim(Combo2.Text) = "" Or Trim(Text1.Text) = "" Then MsgBox "请将选项内容填写完整!",vbOKOnly,"提示" Exit Sub Else Stutxtsql = Stutxtsql & " " & field(Combo1.Text) & " " & Combo2.Text & "'" & Trim(Text1.Text) & "'" If Combo7.Text <> "" Then '判断第一个组合关系是否选中 If Combo3.Text = "" Or Combo4.Text = "" Or Text2.Text = "" Then '如果选中,判断第二行内容是否填写完整,且符合要求 MsgBox "请将第二行选项内容填写完整!","提示" Exit Sub Else Stutxtsql = Stutxtsql & " " & field(Combo7.Text) & " " & field(Combo3.Text) & " " & Combo4.Text & "'" & Trim(Text2.Text) & "'" '将前两行的条件联系起来,完成sql语句 If Combo8.Text <> "" Then '判断第二个组合关系是否选中 If Combo5.Text = "" Or Combo6.Text = "" Or Text3.Text = "" Then '如果选中,判断第二行内容是否填写完整,且符合要求 MsgBox "请将第三行选项内容填写完整!","提示" Exit Sub Else Stutxtsql = Stutxtsql & " " & field(Combo8.Text) & " " & field(Combo5.Text) & " " & Trim(Combo6.Text) & "'" & Trim(Text3.Text) & "'" '将三行的条件联系起来,完成sql语句 End If End If End If End If Set Stumrc = Executesql(Stutxtsql,StuMsgtext) '在用户表中查找用户 'Executesql是自定义函数。Executesql是执行sql语句(execute:执行,一般按照用途定义名字的)里面的两个参数 'txtsql 是指 用来执行的sql语句 比如:select * from 表 'MsgText参数 指的是实行完sql语句后的弹出框 是成功了还是失败了之类的
其他
txtsql = "select * from 表名称 where" txtsql = txtsql & " " & field(组合关系) & " " & field(某行条件中运算符前的内容) & " " & 该行条件中的运算符号 & "'" & 运算符后的内容 & "'"
这样写出来可能更好理解一些,但field是什么?
其实呢,field是一个被定义的函数过程,可以使VB程序中的字段名与数据库中的列名相对应。
如此一来,txtsql="select * from 表名称 where 字段名" 就可以在该窗体被恰当的使用。
field的定义可以如下所示:
如此一来,txtsql="select * from 表名称 where 字段名" 就可以在该窗体被恰当的使用。
Public Function field(a As String) As String '定义一个函数过程 Select Case a '字段名与数据库中的列名相对应 '学生基本信息维护要用到的字段 Case "学号" field = "studentno" Case "姓名" field = "studentName" Case "卡号" field = "cardno" Case "金额" field = "cash" Case "系别" field = "department" Case "年级" field = "grade" Case "班级" field = "class" Case "性别" field = "sex" Case "状态" field = "status" Case "备注" field = "explain" Case "类型" field = "type" Case "日期" field = "date" Case "时间" field = "time" Case "或" field = "or " Case "与" field = "and " End Select End Function
小结
机房学习中遇到的一系列困难,让我明白,我们不能因为害怕困难就止步不前,我们现在正处于允许犯错的阶段,也正是知识的快速增长期,希望我们每个人都可以把握好机遇,利用好资源,取得更大的进步,在最美的年华遇到最好的我们!