机房收费系统—组合查询

原创 2016年08月29日 16:45:47

在敲机房的时候,组合查询这一块是一个难点,为什么难呢,说白了就是没有理清思路,理清楚思路之后,写代码的时候再认真一些就没有问题了。



1首先在加载窗体中 

<span style="font-size:24px;">Private Sub Form_Load()

    Combo1.AddItem "卡号"
    Combo1.AddItem "学号"
    Combo1.AddItem "姓名"
    Combo1.AddItem "性别"
    Combo1.AddItem "系别"
    Combo1.AddItem "年级"
    Combo1.AddItem "班级"

    Combo2.AddItem "卡号"
    Combo2.AddItem "学号"
    Combo2.AddItem "姓名"
    Combo2.AddItem "性别"
    Combo2.AddItem "系别"
    Combo2.AddItem "年级"
    Combo2.AddItem "班级"
    
    Combo3.AddItem "卡号"
    Combo3.AddItem "学号"
    Combo3.AddItem "姓名"
    Combo3.AddItem "性别"
    Combo3.AddItem "系别"
    Combo3.AddItem "年级"
    Combo3.AddItem "班级"

    Combo4.AddItem "="
    Combo4.AddItem "<"
    Combo4.AddItem ">"
    Combo4.AddItem "<>"

    Combo5.AddItem "="
    Combo5.AddItem "<"
    Combo5.AddItem ">"
    Combo5.AddItem "<>"

    Combo6.AddItem "="
    Combo6.AddItem "<"
    Combo6.AddItem ">"
    Combo6.AddItem "<>"

    Combo7.AddItem "与"
    Combo7.AddItem "或"

    Combo8.AddItem "与"
    Combo8.AddItem "或"
    
    Combo2.Enabled = False
    Combo3.Enabled = False
    Combo5.Enabled = False
    Combo6.Enabled = False
    Text2.Enabled = False
    Text3.Enabled = False
    Combo8.Enabled = False
  
End Sub</span>
2控件的显示

<span style="font-size:24px;">Private Sub Combo7_click()
Combo2.Enabled = True
Combo5.Enabled = True
Text2.Enabled = True
Combo8.Enabled = True
End Sub

Private Sub Combo8_click()
Combo3.Enabled = True
Combo6.Enabled = True
Text3.Enabled = True

End Sub</span>
3把汉字转化为数据库中的字段

<span style="font-size:24px;">Private Function FieldName(strFieldName As String) As String
'用来把汉字转变成SQL可识别的英文
    Select Case strFieldName
        Case "卡号"
            FieldName = "cardno"
        Case "学号"
            FieldName = "studentNo"
        Case "姓名"
            FieldName = "studentName"
        Case "性别"
            FieldName = "sex"
        Case "系别"
            FieldName = "department"
        Case "年级"
            FieldName = "grade"
        Case "班级"
            FieldName = "class"
        Case "或"
            FieldName = "or"
        Case "与"
            FieldName = "and"

    End Select          
End Function</span>
4定义一个函数

<span style="font-size:24px;">Private Function ViewData(txtSQL, mrc As ADODB.Recordset)
    
    '定义函数,调用
    '显示列名
    With myflexgrid
        .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) = "状态"
        .TextMatrix(0, 9) = "备注"
        .TextMatrix(0, 10) = "类型"
        .TextMatrix(0, 11) = "日期"
        .TextMatrix(0, 12) = "时间"
          
    End With

    With myflexgrid
    Do While Not mrc.EOF

        .Rows = .Rows + 1
        .CellAlignment = 4
        .TextMatrix(.Rows - 1, 0) = Trim(mrc.Fields(1))
        .TextMatrix(.Rows - 1, 1) = Trim(mrc.Fields(2))
        .TextMatrix(.Rows - 1, 2) = Trim(mrc.Fields(0))
        .TextMatrix(.Rows - 1, 3) = Trim(mrc.Fields(7))
        .TextMatrix(.Rows - 1, 4) = Trim(mrc.Fields(4))
        .TextMatrix(.Rows - 1, 5) = Trim(mrc.Fields(5))
        .TextMatrix(.Rows - 1, 6) = Trim(mrc.Fields(6))
        .TextMatrix(.Rows - 1, 7) = Trim(mrc.Fields(3))
        .TextMatrix(.Rows - 1, 8) = Trim(mrc.Fields(10))
        .TextMatrix(.Rows - 1, 9) = Trim(mrc.Fields(8))
        .TextMatrix(.Rows - 1, 10) = mrc.Fields(14)
        .TextMatrix(.Rows - 1, 11) = mrc.Fields(12)
        .TextMatrix(.Rows - 1, 12) = mrc.Fields(13)
        
        mrc.MoveNext
    Loop

    End With
    mrc.Close
End Function</span>
5查询

<span style="font-size:24px;">Private Sub cmdinquire_Click()
    Dim msgText As String
    Dim txtSQL1 As String
    Dim txtSQL2 As String
    Dim txtSQL3 As String
    Dim mrc As ADODB.Recordset
   
    '判断输入是否从新查询
    If myflexgrid.Text <> "" Then
        myflexgrid.Clear
        myflexgrid.Rows = 1
    End If
    
   ' 判断查询条件是否为空
    
   If Not Testtxt(Combo1.Text) Or Not Testtxt(Combo4.Text) Or Not Testtxt(Text1.Text) Then
        MsgBox "请输入查询条件一", vbOKOnly + vbExclamation, "警告"
        Exit Sub
   End If
   
   '却定查询条件一不为空的条件下
    txtSQL1 = "select * from student_Info where " & FieldName(Combo1.Text) & Trim(Combo4.Text) & "'" & Trim(Text1.Text) & "'"
    
    '组合条件一是否为空
 
    If Combo7.Text = "" Then
        Set mrc = ExecuteSQL(txtSQL1, msgText)
        If mrc.EOF = True Then
            MsgBox "此条件没有查询结果", vbOKOnly + vbExclamation, "警告"
            Exit Sub
        Else
            Call ViewData(txtSQL1, mrc)
        End If
    Else
        If Not Testtxt(Combo2.Text) Or Not Testtxt(Combo5.Text) Or Not Testtxt(Text2.Text) Then
            MsgBox "请输入查询条件二", vbOKOnly + vbExclamation, "警告"
            Exit Sub
        End If
        
         txtSQL2 = txtSQL1 & FieldName(Combo7.Text) & " " & FieldName(Combo2.Text) & Trim(Combo5.Text) & "'" & Trim(Text2.Text) & "'"
                       
'组合条件一不为空的条件下组合条件二的判断
    If Combo8.Text = "" Then
        Set mrc = ExecuteSQL(txtSQL2, msgText)
            If mrc.EOF = True Then
                MsgBox "此条件没有查询结果", vbOKOnly + vbExclamation, "警告"
                Exit Sub
            Else
                Call ViewData(txtSQL2, mrc)
            End If
    Else
        If Not Testtxt(Combo3.Text) Or Not Testtxt(Combo6.Text) Or Not Testtxt(Text3.Text) Then
            MsgBox "请输入查询条件三", vbOKOnly + vbExclamation, "警告"
            Exit Sub
        End If
        
        txtSQL3 = txtSQL2 & FieldName(Combo8.Text) & " " & FieldName(Combo3.Text) & Trim(Combo6.Text) & "'" & Trim(Text3.Text) & "'"
         
         Set mrc = ExecuteSQL(txtSQL3, msgText)
         If mrc.EOF = True Then
            MsgBox "此条件没有查询结果", vbOKOnly + vbExclamation, "警告"
            Exit Sub
        Else
            Call ViewData(txtSQL3, mrc)
        End If
    End If
End If

End Sub</span>
6修改

<span style="font-size:24px;">Private Sub cmdmodify_Click()
    If myflexgrid.Row = 0 Then
        MsgBox "请选中学生", vbOKOnly + vbExclamation, "警告"
        Exit Sub
    End If

    SetParent frmmodifyStudentinfo.hWnd, frmstudentbase.hWnd
    frmmodifyStudentinfo.Show
End Sub</span>
理清楚思路之后是不是感觉很简单呀。






版权声明:本文为博主原创文章,未经博主允许不得转载。

【机房收费系统】——组合查询

在机房收费系统中,其中的组合查询仅仅在刚开始的时候构思了一点自己的想 法,但是并没用付诸于行动,去尝试自己的是否正确,而是选择了去看之前看 到的一篇关于组合查询的博客,说起来有些愧疚的啊。还好的是...
  • z15732621736
  • z15732621736
  • 2015年07月26日 20:04
  • 996

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

机房收费系统之组合查询
  • u013067402
  • u013067402
  • 2014年08月12日 15:45
  • 1555

机房收费系统之八(组合查询)

1.组合查询:涉及的窗体有学生基本信息维护,学生上机记录查询,学生上机统计查询 初次见到组合查询界面,有种似曾相识的感觉。没错,我们在学生信息管理系统里面见过类似的。也可以说我们已经接触过组合查询了。...
  • ght886
  • ght886
  • 2017年06月11日 16:39
  • 478

机房收费系统——上机状态查询之下机

msflexgrid选中不连续的行
  • jerry11112
  • jerry11112
  • 2017年12月22日 10:35
  • 370

机房收费系统 — 组合查询

机房收费系统 — — 组合查询 机房进行到现在也有一段时间了,在代码海中游过来,自己也收获到了很多!...
  • qq_31868147
  • qq_31868147
  • 2017年09月18日 10:38
  • 312

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

机房收费系统中,组合查询可以算说是一个难点吧。在学生信息管理系统中,也有组合查询,不过那只是简单的组合,然后进行查询。可是,在机房收费系统中,涉及到好多内容。一开始接触,完全就懵了,根本不知道从哪里下...
  • u010164936
  • u010164936
  • 2013年11月25日 15:26
  • 994

机房收费系统----组合查询

机房收费系统在磕磕绊绊中过来了,这期间遇到问题,解决问题,最后收获的特别多,在敲得过程中,不断的学习新知识,应该说组合查询是收费系统的一个小难点了吧,起初我是真的不知道该从哪里下手,总是有种剪不断理还...
  • yudandan10
  • yudandan10
  • 2012年11月25日 09:13
  • 1267

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

机房收费系统敲到这,算是遇到真正的难题了。用了我整整一下午的时间,晚饭都没顾上吃才攻克了。 这个窗体难点就在组合查询,很考验人的思维能力,要想实现这个窗体必须要有清晰地思路。 首先判断各种情况: 1、...
  • u010926964
  • u010926964
  • 2013年09月21日 17:19
  • 1530

机房收费系统---组合查询

在机房收费系统中,在对大型的数据中进行检索的时候。通过一个字段进行检索的时候,往往得到很多没有价值的结果。这样的查询没有多大意义。所以人们往往 通过添加字段的方式。逐步进行筛选。这样得到的数据,又少又...
  • zc474235918
  • zc474235918
  • 2013年09月11日 17:25
  • 1549

组合查询--机房收费系统

机房收费系统用到的组合查询是比较多的,一般用户中的出意外是查看上机状态、操作员中的查询工作记录、查询学生上机统计信息、学生基本信息维护。 下面附上查询学生上机统计信息的代码: Private Sub ...
  • ningmengbaby
  • ningmengbaby
  • 2016年08月19日 09:09
  • 348
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:机房收费系统—组合查询
举报原因:
原因补充:

(最多只允许输入30个字)