机房收费系统之—组合查询

在敲组合查询的时候,我遇到了很多问题,比如说查询的语法怎么连接啊,怎么让控件中的文本信息也就是说字段名,组合关系对应数据库表中的字段哪?

也就是说我们要让卡号=Cardno,让姓名=StudentName ,这样我们在查询的时候才方便了,反成不能直接给Combox的text里面上英文的吧? 于是就定义个函数,让它实现这个功能,函数如下。

<span style="font-size:18px;">Public Function Field(i As String) As String
    Select Case i
        Case "卡号"
    Field = "cardno"
        Case "姓名"
    Field = "studentname"
        Case "上机日期"
    Field = "ondate"
        Case "上机时间"
    Field = "ontime"
        Case "下机日期"
       .......
    End select
End Function
</span>

这样就行了。下面这组合查语法以及代码

<span style="font-size:18px;">Private Sub cmdInqurie_Click()
    Dim ctrl As Control
    Dim mrc As ADODB.Recordset
    Dim txtSQL As String
    Dim Msgtext As String
     '检查条件输入
    If Trim(cmbfeild1.Text) = "" Or Trim(cmboperator1.Text) = "" Or Trim(txt1.Text) = "" Then
        MsgBox "请输入完整的查询条件", , "提示"
        Exit Sub
    End If

    Dim i, iCols As Integer '让所有列都居中显示文字
    iCols = MSFlexGrid1.Cols
    For i = 0 To iCols - 1
        MSFlexGrid1.ColAlignment(i) = flexAlignCenterCenter
    Next

    txtSQL = "select * from line_info where "
    txtSQL = txtSQL & Trim(Field(cmbfeild1.Text)) & Trim((cmboperator1.Text)) & "'" & Trim(txt1.Text) & "'"
    If Trim(cmbRelation1.Text <> "") Then '第一个组合关系存在
        If Trim(cmbfeild2.Text) = "" Or Trim(cmboperator2.Text = "") Or Trim(txt2.Text = "") Then
            MsgBox "你已经选择了第一个组合关系,请输入第二行查询条件", , "提示"
            Exit Sub
        Else
            txtSQL = txtSQL & Field(Trim(cmbRelation1.Text)) & " " & Field(cmbfeild2.Text) & cmboperator2.Text & "'" & Trim(txt2.Text) & "'"
        End If
    End If

    If Trim(cmbRelation2.Text <> "") Then '第二个组合关系存在
        If Trim(cmbfeild3.Text) = "" Or Trim(cmboperator3.Text) = "" Or Trim(txt3.Text) = "" Then
            MsgBox "你已经选择了第二个组合关系,请输入第三行查询条件", , "提示"
            Exit Sub
        Else
            txtSQL = txtSQL & Field(cmbRelation2.Text) & " " & Field(cmbfeild3.Text) & cmboperator3.Text & "'" & Trim(txt3.Text) & "'"
        End If
    End If
    On Error GoTo error1 '错误语句保护,当用户输入查询的格式不对时给出提示信息。

    Set mrc = ExecuteSQL(txtSQL, Msgtext)
    If mrc.EOF = True Then '检查信息是否存在,如果不存在给出提示并清空所有文本框
        MsgBox "没有查询到结果,可能会你输入的信息不存在,或者信息矛盾"
        For Each ctrl In Me.Controls
        If TypeOf ctrl Is TextBox Then   '是否为文本框TextBox
            ctrl.Text = ""               '清空所有文本框
        End If
        Next

      For Each ctrl In Me.Controls
        If TypeOf ctrl Is ComboBox Then   '是否为文本框TextBox
            ctrl.Text = ""
        End If
      Next
        Exit Sub
    End If
    With MSFlexGrid1
        .Rows = 1
        .TextMatrix(0, 0) = "卡号"
        .TextMatrix(0, 1) = "姓名"
        .TextMatrix(0, 2) = "上机日期"
        ........

     Do While Not mrc.EOF
            .Rows = .Rows + 1
            .TextMatrix(.Rows - 1, 0) = Trim(mrc!cardno)
            .TextMatrix(.Rows - 1, 1) = mrc!studentname
            .TextMatrix(.Rows - 1, 2) = mrc!ondate
            .TextMatrix(.Rows - 1, 3) = mrc!OnTime
            ........
            mrc.MoveNext
        Loop
    End With
    mrc.Close
error1:
    MsgBox "你输入的查询信息格式有误,请按标准格式输入。"
End Sub</span>

代码一大堆,这里面最终的的思想是怎样突破我们的固有思维,怎样创新,让我们的思想灌输进来。我们要用到以前所学的知识,达到学以致用的效果,其实还有比这些写更简便实用的代码等待我们开发,钻研。

机房收费系统之—组合查询

时间: 2024-10-29 08:24:47

机房收费系统之—组合查询的相关文章

机房收费系统 之 组合查询BUG

声明:以下内容只对在学生上机记录查询(组合查询)只查询已下机记录,操作员工作记录(组合查询)只查询已注销记录的同学适用! 说是BUG,其实这也不是一个BUG,只是一个不小心容易犯的错误,而且不注意的话还真发现不了.下面就给大家详细的讲讲: 在机房收费系统中有三个组合查询:学生基本信息查询.学生上机记录查询.操作员工作记录查询:其中的学生上机记录查询,我个人认为应该只查询出已经下机的记录,正在上机的记录不应该被查询出来:操作员工作记录也是同样的. 如果你跟我也是一样的想法,那就接着看看我们的实现方

VB.NET+三层 机房收费系统之组合查询

关系组合查询已经用去了4天的时间.每天都在痛苦中煎熬,绞尽脑汁,一句代码都要瞪大眼睛看好长时间,有时候.由于两句话颠倒了.就nothing了:有时候,由于table如何可以转换成实体类型.将自己困住了.一想就是半天.状况不断呀.看了非常多师哥师姐们的代码,他们分享着自己的代码.为了给大家一点东西,给拿出自己给大家分享.期望大家能给点意见. 步骤: (1).首先建立实体,实体是用来存储变量的. (2).建立B层,B层除了有调用D层的函数,同一时候,它也有将汉字转换为sql中的字段的功能. (3).

VB.NET版机房收费系统---组合查询

查询的意思就是查找,寻找,指在某一个或几个地方找出自己所要的信息,假如我想搜索一下我自己写的博客,名字叫做初雪之恋,我在百度的搜索框中输入丁国华三个字,会有如何的惊喜等着我? 啊哦,这个信息并非我想要的,于是我再搜,"丁国华 廊坊师范学院  csdn"搜索结果例如以下: 非常显然,这个还不是我想要的结果,我接着搜,"丁国华 廊坊师范学院 csdn 初雪之恋": 在我的理解中,组合查询就是通过条件层层限制,一步一步精确,得到我们想要的答案,在机房收费系统中,有好几处涉

机房收费系统合作——再看数据库设计

机房合作我负责了最简单的D层,接口层,工厂层.反正D层是我来写,于是数据库索性也就顺便设计了.已经是第三次敲机房收费系统了,每次都是相隔半年左右吧.需求搞得透透的了,数据库也就好设计了.基本跟第二次没什么大的区别,就是把Student表和Card表分开了. 重构的时候,我的数据库几乎什么都用到了:事务,存储过程,触发器,视图,联合查询等等.所以,这次设计数据库还是SO Easy的..并且,为了让婵婵和牛迁迁师哥写的方便,我把组合查询都写成了存储过程!!!!费了一番功夫,但是D层简单了不少.还记得

机房收费系统——测试计划

测试计划(GB8567--88) 1引言 在项目基本编码工作完成的就要进行测试,对于排除出错误和修复漏洞有重要作用. 1.1编写目的 测试的主要目的就是尽可能多的找到系统中的漏洞,并且设计出测试用例,对系统测试.目的及在于对测试的方法.测试流程,有一定大体上的掌控.本文档的预期读者是测试人员. 系统测试在整个项目开发过程中,比例占到了40%~50%.基本上在项目进行编码的过程中就开始了测试,所以测试的好坏也影响了系统的功能实现情况. 1.2背景 说明: a.  测试计划所从属的软件系统的名称:机

机房收费系统—《存储过程》

前两天博客写了视图和触发器,本来不想写存储过程了,想想会用就行了.但是自己在用的过程中越到很多问题,不做个总结一定还会用错的. 机房收费系统里我为什么要用它呢? 在这之前我的回答是:因为大家都在用,所以一定会用到. 现在我的回答是:因为它可以将常用的或者很复杂的工作,用SQL语句写好并存储起来,用户在可以直接通过存储过程的名称进行调用. 相对于使用SQL语句,存储过程的好处是: 1.执行速度快 存储过程创建的时候,数据库已经对其进行了一次解析和优化,存储过程一旦执行,就会保留在内存中,下次再执行

机房收费系统——概要设计说明书

概要设计说明书 1引言 1.1编写目的 这是一个宏观的把控系统开发总概括,对于对象.类等进行一定的大体的设计,设计人员可以通过概要设计为接下来的详细设计做准备. 预期读者是设计人员. 1.2背景 说明: a.       待开发软件系统的名称:机房收费系统 b.       列出此项目的任务提出者: 开发者:十期学生 用户:廊坊师范学院全体师生 将运行该软件的计算站(中心):图书馆阅览室.学校机房 1.3定义 1.4参考资料 列出有关的参考文件,如: a.     本项目的经核准的计划任务书或合

个人版机房收费系统总结

用了一个月的时间,重构完成了个人版的机房收费系统,不来个总结心里就有点儿不踏实. 首先说说一年前第一次敲机房收费系统的事儿,那是纯面向过程,能实现功能就可以.当初完成了这个系统,可谓是在提高班学习中的又一个里程碑,纯手工制作,精心打造.我们学会了分析业务流程,消化吸收VB和数据库的学习成果,提高对代码的亲和力,培养对编程的兴趣. 一年后的现在经历了第二次机房收费系统,深刻体会到了米老师编制培养计划的良苦用心,我们其实是在攀登一座高山,一步一个台阶.在第一次机房收费系统中暴露出来的问题得以解决和完

机房收费系统——视图的运用

对于视图在一年前的数据库学习和自考中就学到了,那时只是理论学习,这次在机房收费系统重构中亲自实践,加深了对视图的理解. 定义: 从数据库系统外部来看,视图是用户从一个特定的角度来查看数据库中的数据.从数据库系统内部来看,视图是由SELECT语句组成的查询定义的虚拟表,在数据库中并不真实存在.好比在提高班有学术部,安全部,纪律部等等,这些部门就是视图,需要给哪个部门开会就通知哪个部门.这些部门的人都是提高班各个期的(基本表),并且每个人都是独一无二的. 操作: 由于视图只是存储的SQL Selec