您的位置:首页 > 其它

机房收费系统—组合查询

2013-11-16 20:05 309 查看

机房收费系统终于把最基本的完成了,“报表”一词早就听说了,但是一直都很好奇,确距离很远吗,因为自己进度慢了一大拍,今天完成了所有的组合窗体,因为逻辑搞不清楚,总是胡乱写一套,一个上机状态查询组合窗体,整整写了一周,但是庆幸的是,一个写完。另外几个也就很容易的完成了,只要稍加修改一下调用的数据库表和组合选项就OK了!

机房收费系统组合查询(例:上机状态查询)

Option Explicit
    Dim mrc As ADODB.Recordset
    Dim TxtSQL As String
    Dim MsgText As String

Private Sub CmdOK_Click()
    
    '确保查询内容对话框有内容
    If Trim(Combo_name1.Text = "") Then
        MsgBox "请选择首行字段符!", vbOKOnly + vbExclamation, "警告"
        Combo_name1.SetFocus
        Exit Sub
    End If
    If Trim(ComboSign1.Text = "") Then
        MsgBox "请选择首行操作符", vbOKOnly + vbExclamation, "警告"
        ComboSign1.SetFocus
        Exit Sub
    End If
    If Trim(txtInquire1.Text = "") Then
        MsgBox "请输入要查询的内容", vbOKOnly + vbExclamation
        Exit Sub
    End If
            
'******************************************************************************
    '调用正在上机状态表
     TxtSQL = "select * from Online_info where(" & Combo_name1.Tag & ComboSign1.Text & "'" & txtInquire1.Text & "'"
        If ComboRelation1.Text <> "" Then   '第一个条件已经选择不能为空,第二个组合字段开始
            If Trim(Combo_name2.Text = "") Then '第二个组合字段若为空,则提醒
                MsgBox "请选择字段!", vbOKOnly + vbExclamation, "警告"
                Combo_name2.SetFocus
                Exit Sub
            End If
            If Trim(ComboSign2.Text = "") Then
                MsgBox "请选择操作符", vbOKOnly + vbExclamation, "警告"
                ComboSign2.SetFocus
                Exit Sub
            End If
            If Trim(txtInquire2.Text = "") Then
                MsgBox "请输入要查询的内容!", vbOKOnly + vbExclamation, "警告"
                txtInquire2.SetFocus
                Exit Sub
            End If
            '第二个组合字段不为空,则前两个字段相互连接,都满足时才能查询出来
            TxtSQL = TxtSQL & " " & ComboRelation1.Tag & " " & Combo_name2.Tag & ComboSign2.Text & "'" & txtInquire2.Text & "'"
        End If
        
        If ComboRelation2.Text <> "" Then   '第一个条件已经选择不能为空,第二个组合字段开始
            If Trim(Combo_name3.Text = "") Then '第二个组合字段若为空,则提醒
                MsgBox "请选择字段!", vbOKOnly + vbExclamation, "警告"
                Combo_name3.SetFocus
                Exit Sub
            End If
            If Trim(ComboSign3.Text = "") Then
                MsgBox "请选择操作符", vbOKOnly + vbExclamation, "警告"
                ComboSign3.SetFocus
                Exit Sub
            End If
            If Trim(txtInquire3.Text = "") Then
                MsgBox "请输入要查询的内容!", vbOKOnly + vbExclamation, "警告"
                txtInquire3.SetFocus
                Exit Sub
            End If
            '第三个组合字段不为空,则三个字段相互连接,都满足时才能查询出来
            TxtSQL = TxtSQL & " " & ComboRelation2.Tag & " " & Combo_name3.Tag & ComboSign3.Text & "'" & txtInquire3.Text & "'"
        End If
        
    TxtSQL = TxtSQL & ")"
    Set mrc = ExecuteSQL(TxtSQL, MsgText)
    
    If mrc.RecordCount = 0 Then
        myFlexGrid.Clear
        MsgBox "无记录", vbOKOnly + vbExclamation, "警告"
        Exit Sub
    End If

    With myFlexGrid
        .Rows = 1
        .CellAlignment = 4
        .TextMatrix(0, 0) = "卡号"
        .TextMatrix(0, 1) = "姓名"
        .TextMatrix(0, 2) = "上机日期"
        .TextMatrix(0, 3) = "上机时间"
        .TextMatrix(0, 4) = "机房号"
   
    
    Do While Not mrc.EOF
        .Rows = .Rows + 1
        .CellAlignment = 4
        .TextMatrix(.Rows - 1, 0) = mrc.Fields(0)
        .TextMatrix(.Rows - 1, 1) = mrc.Fields(3)
        .TextMatrix(.Rows - 1, 2) = mrc.Fields(6)
        .TextMatrix(.Rows - 1, 3) = mrc.Fields(7)
        .TextMatrix(.Rows - 1, 4) = mrc.Fields(8)
        mrc.MoveNext
    Loop
    End With
    
End Sub

Private Sub Combo_name1_Click()
    If Combo_name1.Text = "卡号" Then Combo_name1.Tag = "cardno"
    If Combo_name1.Text = "姓名" Then Combo_name1.Tag = "studentname"
    If Combo_name1.Text = "上机日期" Then Combo_name1.Tag = "ondate"
    If Combo_name1.Text = "上机时间" Then Combo_name1.Tag = "ontime"
    If Combo_name1.Text = "机房号" Then Combo_name1.Tag = "computer"
End Sub

Private Sub Combo_name2_Click()
    If Combo_name2.Text = "卡号" Then Combo_name2.Tag = "cardno"
    If Combo_name2.Text = "姓名" Then Combo_name2.Tag = "studentname"
    If Combo_name2.Text = "上机日期" Then Combo_name2.Tag = "ondate"
    If Combo_name2.Text = "上机时间" Then Combo_name2.Tag = "ontime"
    If Combo_name2.Text = "机房号" Then Combo_name2.Tag = "computer"
End Sub

Private Sub Combo_name3_Click()
    If Combo_name3.Text = "卡号" Then Combo_name3.Tag = "cardno"
    If Combo_name3.Text = "姓名" Then Combo_name3.Tag = "studentname"
    If Combo_name3.Text = "上机日期" Then Combo_name3.Tag = "ondate"
    If Combo_name3.Text = "上机时间" Then Combo_name3.Tag = "ontime"
    If Combo_name3.Text = "机房号" Then Combo_name3.Tag = "computer"
End Sub
Private Sub ComboRelation1_Click()
    If ComboRelation1.Text = "与" Then ComboRelation1.Tag = "and"
    If ComboRelation1.Text = "或" Then ComboRelation1.Tag = "or"
    
    Combo_name1.Visible = True
    ComboSign1.Visible = True
    txtInquire1.Visible = True
    ComboRelation1.Visible = True
End Sub
Private Sub ComboRelation2_Click()
    If ComboRelation2.Text = "与" Then ComboRelation2.Tag = "and"
    If ComboRelation2.Text = "或" Then ComboRelation2.Tag = "or"
    
    Combo_name2.Visible = True
    ComboSign2.Visible = True
    txtInquire1.Visible = True
    ComboRelation2.Visible = True
End Sub

Private Sub Form_Load()
'输入ComboBox控件里的内容

    Combo_name1.AddItem "卡号"
    Combo_name1.AddItem "姓名"
    Combo_name1.AddItem "上机日期"
    Combo_name1.AddItem "上机时间"
    Combo_name1.AddItem "机房号"
    
    Combo_name2.AddItem "卡号"
    Combo_name2.AddItem "姓名"
    Combo_name2.AddItem "上机日期"
    Combo_name2.AddItem "上机时间"
    Combo_name2.AddItem "机房号"

    Combo_name3.AddItem "卡号"
    Combo_name3.AddItem "姓名"
    Combo_name3.AddItem "上机日期"
    Combo_name3.AddItem "上机时间"
    Combo_name3.AddItem "机房号"

    ComboSign1.AddItem "="
    ComboSign1.AddItem "<"
    ComboSign1.AddItem ">"
    ComboSign1.AddItem "<>"
    
    ComboSign2.AddItem "="
    ComboSign2.AddItem "<"
    ComboSign2.AddItem ">"
    ComboSign2.AddItem "<>"

    ComboSign3.AddItem "="
    ComboSign3.AddItem "<"
    ComboSign3.AddItem ">"
    ComboSign3.AddItem "<>"

    ComboRelation1.AddItem "与"
    ComboRelation1.AddItem "或"

    
    ComboRelation2.AddItem "与"
    ComboRelation2.AddItem "或"
End Sub

写完以后,自己总是遇到一个问题,就是实时错误'91',对象变量或with 块变量未设置

困扰了很久,还是找同学给看了一下,原来是Private Sub ComboRelation1_Click()等Click事件写成了Change,太马虎了!以后还是要细心!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: